diff --git a/pyproject.toml b/pyproject.toml
index f414282769aa6f344c25bac13cd9780983a1c5f6..b873257cd0e06590e26b0c3a1ad8ae3d10e9f283 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -72,10 +72,8 @@ infrastructure = [
     'asgiref~=3.5',
     'bagit==1.8.1',
     'basicauth==0.4.1',
-    'bcrypt==3.2.0',
     'beautifulsoup4',
     'celery',
-    'cryptography',
     'dockerspawner==13.0.0',
     'elasticsearch==7.17.1',
     'fastapi<0.100', # later versions pending pydantic v2 upgrade
@@ -93,7 +91,6 @@ infrastructure = [
     'msgpack',
     'oauthenticator==15.1.0',
     'optimade[mongo]==0.22.1',
-    'passlib==1.7.4',
     'pyjwt[crypto]==2.6.0',
     'python-json-logger==2.0.2',
     'python-logstash==0.4.6',
@@ -126,7 +123,7 @@ dev = [
     'mypy==1.0.1', # bug: incompatible with derived models of pydantic v1
     'names==0.3.0',
     'pip-tools>=6.13.0',
-    'pycodestyle==2.8.0',
+    'pycodestyle',
     'pytest-cov==2.7.1',
     'pytest-timeout==1.4.2',
     'pytest-xdist>=1.30.0',
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 28402e87adf87142c51884b8f33e61d8ad7a6de4..0f5d54d1d77db4aa57a0284367974ddf155ff742 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -25,7 +25,6 @@ babel==2.14.0             # via -r requirements.txt, mkdocs-git-revision-date-lo
 backports-tarfile==1.0.0  # via jaraco-context
 bagit==1.8.1              # via -r requirements.txt, nomad-lab (pyproject.toml)
 basicauth==0.4.1          # via -r requirements.txt, nomad-lab (pyproject.toml)
-bcrypt==3.2.0             # via -r requirements.txt, nomad-lab (pyproject.toml)
 beautifulsoup4==4.12.3    # via -r requirements.txt, nomad-lab (pyproject.toml)
 billiard==4.2.0           # via -r requirements.txt, celery
 biopython==1.83           # via -r requirements.txt, mdanalysis
@@ -37,7 +36,7 @@ cachetools==5.3.3         # via -r requirements.txt, nomad-lab (pyproject.toml)
 celery==5.3.6             # via -r requirements.txt, nomad-lab (pyproject.toml)
 certifi==2024.2.2         # via -r requirements.txt, elasticsearch, httpcore, httpx, requests
 certipy==0.1.3            # via -r requirements.txt, jupyterhub
-cffi==1.16.0              # via -r requirements.txt, bcrypt, cryptography
+cffi==1.16.0              # via -r requirements.txt, cryptography
 cftime==1.6.3             # via -r requirements.txt, netcdf4
 charset-normalizer==3.3.2  # via -r requirements.txt, requests
 click==8.1.7              # via -r requirements.txt, asr, celery, click-didyoumean, click-plugins, click-repl, dask, flask, mkdocs, mkdocs-click, nomad-lab (pyproject.toml), pip-tools, pynxtools, uvicorn
@@ -50,7 +49,7 @@ comm==0.2.2               # via -r requirements.txt, ipykernel
 commonmark==0.9.1         # via -r requirements.txt, recommonmark
 contourpy==1.2.1          # via -r requirements.txt, matplotlib
 coverage==7.4.4           # via pytest-cov
-cryptography==42.0.5      # via -r requirements.txt, jwcrypto, nomad-lab (pyproject.toml), pyjwt, pyopenssl, rfc3161ng, secretstorage
+cryptography==42.0.5      # via -r requirements.txt, jwcrypto, pyjwt, pyopenssl, rfc3161ng, secretstorage
 cycler==0.12.1            # via -r requirements.txt, matplotlib
 dask[array]==2024.4.1     # via -r requirements.txt, hyperspy, kikuchipy, orix, pyxem
 debugpy==1.8.1            # via -r requirements.txt, ipykernel
@@ -76,7 +75,7 @@ exceptiongroup==1.2.0     # via -r requirements.txt, anyio, ipython
 execnet==2.1.1            # via pytest-xdist
 executing==2.0.1          # via -r requirements.txt, devtools, stack-data
 f90wrap==0.2.13           # via -r requirements.txt, quippy-ase
-fabio==2023.10.0          # via -r requirements.txt, pyfai, silx
+fabio==2024.4.0           # via -r requirements.txt, pyfai, silx
 fastapi==0.99.1           # via -r requirements.txt, h5grove, nomad-lab (pyproject.toml)
 fasteners==0.19           # via -r requirements.txt, mdanalysis, zarr
 filelock==3.3.1           # via -r requirements.txt, nomad-lab (pyproject.toml)
@@ -104,12 +103,12 @@ httpcore==1.0.5           # via -r requirements.txt, httpx
 httptools==0.6.1          # via -r requirements.txt, uvicorn
 httpx==0.27.0             # via -r requirements.txt, nomad-lab (pyproject.toml)
 hyperspy==1.7.6           # via -r requirements.txt, kikuchipy, pynxtools, pyxem
-idna==3.6                 # via -r requirements.txt, anyio, email-validator, httpx, jsonschema, requests
+idna==3.7                 # via -r requirements.txt, anyio, email-validator, httpx, jsonschema, requests
 ifes-apt-tc-data-modeling==0.1  # via -r requirements.txt, pynxtools
 imageio==2.27.0           # via -r requirements.txt, hyperspy, kikuchipy, nionswift, nionswift-io, nionui, scikit-image
 imagesize==1.4.1          # via -r requirements.txt, sphinx
 importlib-metadata==7.1.0  # via -r requirements.txt, build, dask, flask, hyperspy, jupyter-client, jupyterhub, keyring, markdown, mkdocs, pynxtools, sphinx, twine
-importlib-resources==6.4.0  # via -r requirements.txt, matplotlib
+importlib-resources==6.4.0  # via -r requirements.txt, matplotlib, spglib
 inflection==0.5.1         # via -r requirements.txt, nomad-lab (pyproject.toml)
 ipykernel==6.29.4         # via -r requirements.txt, ipyparallel
 ipyparallel==8.8.0        # via -r requirements.txt, hyperspy
@@ -135,7 +134,7 @@ jwcrypto==1.5.6           # via -r requirements.txt, python-keycloak
 keyring==25.1.0           # via twine
 kikuchipy==0.9.0          # via -r requirements.txt, pynxtools
 kiwisolver==1.4.5         # via -r requirements.txt, matplotlib
-kombu==5.3.6              # via -r requirements.txt, celery
+kombu==5.3.7              # via -r requirements.txt, celery
 lark==1.1.9               # via -r requirements.txt, optimade
 latexcodec==3.0.0         # via -r requirements.txt, pybtex
 llvmlite==0.42.0          # via -r requirements.txt, numba
@@ -195,7 +194,7 @@ oauthenticator==15.1.0    # via -r requirements.txt, nomad-lab (pyproject.toml)
 oauthlib==3.2.2           # via -r requirements.txt, jupyterhub
 openpyxl==3.1.2           # via -r requirements.txt, nomad-lab (pyproject.toml)
 optimade[mongo]==0.22.1   # via -r requirements.txt, nomad-lab (pyproject.toml)
-orix==0.11.1              # via -r requirements.txt, diffsims, kikuchipy, pyxem
+orix==0.12.0              # via -r requirements.txt, diffsims, kikuchipy, pyxem
 orjson==3.10.0            # via -r requirements.txt, h5grove, nomad-lab (pyproject.toml)
 packaging==24.0           # via -r requirements.txt, build, dask, deprecation, docker, gunicorn, hyperspy, ipykernel, jupyterhub, matplotlib, mdanalysis, mkdocs, mongomock, pint, plotly, pooch, pytest, scikit-image, silx, sphinx, tables, xarray
 paginate==0.5.6           # via mkdocs-material
@@ -206,7 +205,6 @@ panedr==0.8.0             # via -r requirements.txt, nomad-lab (pyproject.toml)
 parmed==4.2.2             # via -r requirements.txt, nomad-lab (pyproject.toml)
 parso==0.8.4              # via -r requirements.txt, jedi
 partd==1.4.1              # via -r requirements.txt, dask
-passlib==1.7.4            # via -r requirements.txt, nomad-lab (pyproject.toml)
 pathspec==0.12.1          # via mkdocs
 pexpect==4.9.0            # via -r requirements.txt, ipython
 phonopy==2.9.1            # via -r requirements.txt, asr
@@ -231,7 +229,7 @@ pyasn1-modules==0.4.0     # via -r requirements.txt, rfc3161ng
 pybis @ git+https://github.com/FAIRmat-NFDI/fairmat-pybis.git  # via -r requirements.txt, nomad-lab (pyproject.toml)
 pybtex==0.24.0            # via -r requirements.txt, pymatgen
 pycifrw==4.4.5            # via -r requirements.txt, diffpy-structure
-pycodestyle==2.8.0        # via nomad-lab (pyproject.toml)
+pycodestyle==2.11.1       # via nomad-lab (pyproject.toml)
 pycparser==2.22           # via -r requirements.txt, cffi
 pydantic==1.10.15         # via -r requirements.txt, fastapi, nomad-lab (pyproject.toml), optimade
 pyedr==0.8.0              # via -r requirements.txt, panedr
@@ -285,7 +283,7 @@ rfc3987==1.3.8            # via -r requirements.txt, jsonschema
 rope==0.21.0              # via nomad-lab (pyproject.toml)
 ruamel-yaml==0.18.6       # via -r requirements.txt, jupyter-telemetry, nomad-lab (pyproject.toml), oauthenticator, pymatgen
 ruamel-yaml-clib==0.2.8   # via -r requirements.txt, ruamel-yaml
-ruff==0.3.5               # via nomad-lab (pyproject.toml)
+ruff==0.3.7               # via nomad-lab (pyproject.toml)
 runstats==2.0.0           # via -r requirements.txt, nomad-lab (pyproject.toml)
 scikit-image==0.19.3      # via -r requirements.txt, hyperspy, kikuchipy, pyxem
 scikit-learn==1.4.2       # via -r requirements.txt, kikuchipy, matid, nomad-lab (pyproject.toml), pyxem
@@ -293,13 +291,13 @@ scipy==1.13.0             # via -r requirements.txt, ase, diffsims, findiff, gri
 secretstorage==3.3.3      # via keyring
 sentinels==1.0.0          # via -r requirements.txt, mongomock
 silx==2.0.1               # via -r requirements.txt, pyfai
-six==1.16.0               # via -r requirements.txt, asttokens, basicauth, bcrypt, diffpy-structure, elasticsearch-dsl, html5lib, isodate, pybtex, pytest-xdist, python-dateutil, rdflib, rfc3339-validator, validators
+six==1.16.0               # via -r requirements.txt, asttokens, basicauth, diffpy-structure, elasticsearch-dsl, html5lib, isodate, pybtex, pytest-xdist, python-dateutil, rdflib, rfc3339-validator, validators
 smmap==5.0.1              # via -r requirements.txt, gitdb
 sniffio==1.3.1            # via -r requirements.txt, anyio, httpx
 snowballstemmer==2.2.0    # via -r requirements.txt, sphinx
 soupsieve==2.5            # via -r requirements.txt, beautifulsoup4
 sparse==0.15.1            # via -r requirements.txt, hyperspy
-spglib==2.3.1             # via -r requirements.txt, asr, matid, phonopy, pymatgen
+spglib==2.4.0             # via -r requirements.txt, asr, matid, phonopy, pymatgen
 sphinx==7.2.6             # via -r requirements.txt, recommonmark
 sphinxcontrib-applehelp==1.0.8  # via -r requirements.txt, sphinx
 sphinxcontrib-devhelp==1.0.6  # via -r requirements.txt, sphinx
diff --git a/requirements.txt b/requirements.txt
index ca95c112e3f71bffb27687be47b0c86266ae1844..ade7bbef828c66bbad27d61f48ffe095132fa18d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -21,7 +21,6 @@ attrs==23.2.0             # via jsonschema
 babel==2.14.0             # via sphinx
 bagit==1.8.1              # via nomad-lab (pyproject.toml)
 basicauth==0.4.1          # via nomad-lab (pyproject.toml)
-bcrypt==3.2.0             # via nomad-lab (pyproject.toml)
 beautifulsoup4==4.12.3    # via nomad-lab (pyproject.toml)
 billiard==4.2.0           # via celery
 biopython==1.83           # via mdanalysis
@@ -32,7 +31,7 @@ cachetools==5.3.3         # via nomad-lab (pyproject.toml)
 celery==5.3.6             # via nomad-lab (pyproject.toml)
 certifi==2024.2.2         # via elasticsearch, httpcore, httpx, requests
 certipy==0.1.3            # via jupyterhub
-cffi==1.16.0              # via bcrypt, cryptography
+cffi==1.16.0              # via cryptography
 cftime==1.6.3             # via netcdf4
 charset-normalizer==3.3.2  # via requests
 click==8.1.7              # via asr, celery, click-didyoumean, click-plugins, click-repl, dask, flask, nomad-lab (pyproject.toml), pynxtools, uvicorn
@@ -43,7 +42,7 @@ cloudpickle==3.0.0        # via dask, hyperspy
 comm==0.2.2               # via ipykernel
 commonmark==0.9.1         # via recommonmark
 contourpy==1.2.1          # via matplotlib
-cryptography==42.0.5      # via jwcrypto, nomad-lab (pyproject.toml), pyjwt, pyopenssl, rfc3161ng
+cryptography==42.0.5      # via jwcrypto, pyjwt, pyopenssl, rfc3161ng
 cycler==0.12.1            # via matplotlib
 dask[array]==2024.4.1     # via hyperspy, kikuchipy, orix, pyxem, rosettasciio
 debugpy==1.8.1            # via ipykernel
@@ -66,7 +65,7 @@ et-xmlfile==1.1.0         # via openpyxl
 exceptiongroup==1.2.0     # via anyio, ipython
 executing==2.0.1          # via stack-data
 f90wrap==0.2.13           # via quippy-ase
-fabio==2023.10.0          # via pyfai, silx
+fabio==2024.4.0           # via pyfai, silx
 fastapi==0.99.1           # via h5grove, nomad-lab (pyproject.toml)
 fasteners==0.19           # via mdanalysis, zarr
 filelock==3.3.1           # via nomad-lab (pyproject.toml)
@@ -93,12 +92,12 @@ httpcore==1.0.5           # via httpx
 httptools==0.6.1          # via uvicorn
 httpx==0.27.0             # via nomad-lab (pyproject.toml)
 hyperspy==1.7.6           # via kikuchipy, pynxtools, pyxem
-idna==3.6                 # via anyio, email-validator, httpx, jsonschema, requests
+idna==3.7                 # via anyio, email-validator, httpx, jsonschema, requests
 ifes-apt-tc-data-modeling==0.1  # via pynxtools
 imageio==2.27.0           # via hyperspy, kikuchipy, nionswift, nionswift-io, nionui, scikit-image
 imagesize==1.4.1          # via sphinx
 importlib-metadata==7.1.0  # via dask, flask, hyperspy, jupyter-client, jupyterhub, pynxtools, sphinx
-importlib-resources==6.4.0  # via matplotlib
+importlib-resources==6.4.0  # via matplotlib, spglib
 inflection==0.5.1         # via nomad-lab (pyproject.toml)
 ipykernel==6.29.4         # via ipyparallel
 ipyparallel==8.8.0        # via hyperspy
@@ -119,7 +118,7 @@ jupyterhub==4.0.2         # via dockerspawner, nomad-lab (pyproject.toml), oauth
 jwcrypto==1.5.6           # via python-keycloak
 kikuchipy==0.9.0          # via pynxtools
 kiwisolver==1.4.5         # via matplotlib
-kombu==5.3.6              # via celery
+kombu==5.3.7              # via celery
 lark==1.1.9               # via optimade
 latexcodec==3.0.0         # via pybtex
 llvmlite==0.42.0          # via numba
@@ -165,7 +164,7 @@ oauthenticator==15.1.0    # via nomad-lab (pyproject.toml)
 oauthlib==3.2.2           # via jupyterhub
 openpyxl==3.1.2           # via nomad-lab (pyproject.toml)
 optimade[mongo]==0.22.1   # via nomad-lab (pyproject.toml)
-orix==0.11.1              # via diffsims, kikuchipy, pyxem
+orix==0.12.0              # via diffsims, kikuchipy, pyxem
 orjson==3.10.0            # via h5grove, nomad-lab (pyproject.toml)
 packaging==24.0           # via dask, deprecation, docker, gunicorn, hyperspy, ipykernel, jupyterhub, matplotlib, mdanalysis, mongomock, pint, plotly, pooch, scikit-image, silx, sphinx, tables, xarray
 palettable==3.3.3         # via pymatgen
@@ -175,7 +174,6 @@ panedr==0.8.0             # via nomad-lab (pyproject.toml)
 parmed==4.2.2             # via nomad-lab (pyproject.toml)
 parso==0.8.4              # via jedi
 partd==1.4.1              # via dask
-passlib==1.7.4            # via nomad-lab (pyproject.toml)
 pexpect==4.9.0            # via ipython
 phonopy==2.9.1            # via asr
 pillow==10.0.1            # via fabio, hyperspy, imageio, matplotlib, nionswift, scikit-image
@@ -241,13 +239,13 @@ scikit-learn==1.4.2       # via kikuchipy, matid, nomad-lab (pyproject.toml), py
 scipy==1.13.0             # via ase, diffsims, findiff, griddataformats, hyperspy, kikuchipy, lmfit, matid, mdanalysis, niondata, nionswift, nomad-lab (pyproject.toml), orix, pyfai, pymatgen, pynxtools, pyxem, radioactivedecay, scikit-image, scikit-learn, sparse
 sentinels==1.0.0          # via mongomock
 silx==2.0.1               # via pyfai
-six==1.16.0               # via asttokens, basicauth, bcrypt, diffpy-structure, elasticsearch-dsl, html5lib, isodate, pybtex, python-dateutil, rdflib, rfc3339-validator, validators
+six==1.16.0               # via asttokens, basicauth, diffpy-structure, elasticsearch-dsl, html5lib, isodate, pybtex, python-dateutil, rdflib, rfc3339-validator, validators
 smmap==5.0.1              # via gitdb
 sniffio==1.3.1            # via anyio, httpx
 snowballstemmer==2.2.0    # via sphinx
 soupsieve==2.5            # via beautifulsoup4
 sparse==0.15.1            # via hyperspy
-spglib==2.3.1             # via asr, matid, phonopy, pymatgen
+spglib==2.4.0             # via asr, matid, phonopy, pymatgen
 sphinx==7.2.6             # via recommonmark
 sphinxcontrib-applehelp==1.0.8  # via sphinx
 sphinxcontrib-devhelp==1.0.6  # via sphinx