Skip to content

eLabFTW

v5.6.0 Breaking

This release includes breaking changes for platform teams planning a safe upgrade.

Published 20d Productivity & Wikis
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

docker laboratory lims mysql notebook php

Affected surfaces

auth rbac

Summary

AI summary

Broad release touches Chore, Bugfixes, bug/minor, and feat.

Full changelog

Features

  • feat: i18n: add traditional chinese (#6623) by Nicolas CARPi (6b8c3cd88)
  • feat: docker-entrypoint: add line about starting in HTTP or HTTPS mode (#6627) by Nicolas CARPi (03e5940f3)
  • feat: internals: remove hardcoded versions (#6630) by Nicolas CARPi (99b86d355)
  • feat: ownership: single entity cross-team transfer for admins (#6570) by Mouss (3cc024566)
  • feat: scheduler: add links to selected resource badges (#6678) by Mouss (097b4533e)
  • feat: import: add timestamp when emitting log during import (#6655) by Nicolas CARPi (74ae9a2b3)
  • feat: add evidency.io TSA (#6715) by Nicolas CARPi (5b0ada72b)
  • feat: uploads: add file duplication functionality (#6677) by Mouss (9956d3c1c)
  • feat: add booked resource cost tracking (#6671) by Szilárd Andai (6d42874c6)
  • feat: dashboard: sort scheduled bookings by start time (#6782) by Mouss (ffa3e2441)
  • feat: teams: add option to force resource template usage (#6770) by Mouss (e7f255ae8)
  • feat: elabimg: csp: add custom connect-src (#6802) by Nicolas CARPi (720572e88)
  • feat: tinymce: add php language to codeblock options (#6821) by Mouss (cb2f87a39)
  • feat: add HTTP Range support in DownloadController for video seeking (#6594) by Kosaku Noba (fbaf5bcf7)
  • feat: allow move container/storage locations (#6806) by Jonathan Griffiths (742626007)
  • feat: add more detailed inventory search view (#6814) by Jonathan Griffiths (b4a89bf84)
  • feat: spreadsheet: warn unsaved changes (#6822) by Mouss (12918d165)
  • feat: allow toggling notification acknowledgment status (#6863) by Mouss (77250ac6d)
  • feat: reply with status code 500 on init error (#6887) by Nicolas CARPi (5230be2e2)
  • feat: log upload additions and modifications in entity changelog (#6897) by Mouss (60b1aa1e7)
  • feat: changelog: add tags to entity changelog (#6903) by Mouss (1672c38ca)
  • feat: upgrade ketcher to 3.12.0 (#6876) by Koike (f1a32eada)
  • feat: distribute new containers to various storage locations (#6891) by Jonathan Griffiths (81294fd13)
  • feat: permissions: applying permissions to both read and write at the same time (#6905) by Mouss (cb5415fc0)
  • feat: refactor unit list and add millions of cells (#6907) by Jonathan Griffiths (aeda6fc49)
  • feat: batch: handle templates & resources templates in batch actions (#6906) by Mouss (b27a80855)
  • feat: saml: add orcid attribute (#6920) by Nicolas CARPi (320829df1)
  • api: enable extended mode on search (#6927) by Nicolas CARPi (e729a4f46)
  • feat: add Archive action back: will archive user in all teams (#6934) by Nicolas CARPi (694862928)
  • feat: ROR: add support for ROR (#6949) by Nicolas CARPi (ac4d48b36)
  • feat: ux: sort users by ID in Users table (#6940) by Szilárd Andai (f9ddb9ac1)
  • feat: add ability to create a template from an existing entity (#6869) by Mouss (e89466eb4)
  • feat: display entity ratings in table view (#6981) by Mouss (aceeee15a)
  • feat: move branding to dedicated table (#6998) by Nicolas CARPi (be71dd462)
  • feat: start adding apiv3 files (#7001) by Nicolas CARPi (e6a83ca47)
  • feat/minor: add the command to run the populate script (#7005) by Elsa Touma (514705e9e)
  • feat: compounds import: fix upsert (#7007) by Mouss (d1494fc69)
  • feat: compounds-import: add tags to created resources (#7009) by Mouss (3dd058e94)
  • feat: add deltablot tsa proxy support (#7019) by Nicolas CARPi (5136946c5)
  • feat: api: support merging metadata during entity updates (#7017) by Mouss (e91ca9ce9)
  • feat: categories: improve team-scoped update (#7004) by Elsa Touma (80a1c46e2)
  • feat: text editor: default max size for images (#6992) by Mouss (380b2d6ae)
  • feat: templates: use forms & autofocus on first input of modals when shown (#7020) by Mouss (e14635e70)
  • feat: eln: import/export to handle state of entry & include changelog (#6963) by Mouss (39d8c5306)

Bugfixes

  • bug/minor: clearForm: prevent radio inputs value from being cleared (#6621) by Nicolas CARPi (004fcf361)
  • bug/minor: fix checkbox in the QRcode generation modal (#6618) by Elsa Touma (f6629ebcb)
  • bug/minor: containers: allow edition of float value (#6625) by Nicolas CARPi (d1fca47e9)
  • bug/medium: sig keys: fix sql on readOne() (#6628) by Nicolas CARPi (881729a9e)
  • bug/minor: team tags: prevent cross team tag deletion (#6629) by Nicolas CARPi (44c41727c)
  • bug/medium: eln import: fix eln import when s3 is used for exports (#6648) by Nicolas CARPi (2c4d40b4a)
  • bug/critical: elabimg: move php config after composer install by Nicolas CARPi (e11576175)
  • bug/minor: prevent template crash on invalid json (#6586) by Elsa Touma (6c7131063)
  • bug/minor: admin panel: fix grayed out screen after delete user (#6654) by Nicolas CARPi (6e3dafeaa)
  • a11y: fix accessibility issues (#6619) by Elsa Touma (82df43842)
  • bug/minor: dropdown menu overlap on uploads images (#6681) by Elsa Touma (069a3a795)
  • bug/medium: batch permissions: correctly update base read/write permissions (#6685) by Mouss (72c71ae88)
  • bug/minor: populate: don't create random entries unless asked (#6695) by Nicolas CARPi (16fb9dc63)
  • bug/minor: ui/ux: minor change on lockable steps visual (#6696) by Mouss (51050f0c6)
  • bug/major: idp endpoints: fix upgrade from 5.3 (#6699) by Nicolas CARPi (43af3fa69)
  • a11y: fix accessibitlity issues #26 (#6683) by Elsa Touma (4b15f32fd)
  • bug/minor: compounds import: import compound if not found on pubchem (#6714) by Nicolas CARPi (a48194054)
  • bug/minor: timestamp command: fix incorrect select (#6717) by Nicolas CARPi (6246273d5)
  • bug/minor: uploads: preserve upload state when duplicating entities (#6734) by Mouss (1ef9fde18)
  • bug/minor: css: scope thumbnail dropdown z-index to button (supersedes #6681) (#6732) by Mouss (cb211861b)
  • bug/medium: fix js build (#6740) by Nicolas CARPi (7eb913cc3)
  • bug/minor: todolist: prevent duplicate component initialization (#6742) by Mouss (d25bc5e0c)
  • bug/minor: uploads: ghost attachments on creating/duplicating entries (#6757) by Mouss (9be7dd0c3)
  • bug/minor: editor: allow custom table background colors in view mode (#6749) by Mouss (e65d771cb)
  • ux/ui: some additional fixes (#6779) by Mouss (cda1c6396)
  • bug/minor: scheduler: prevent false success notification on event cancellation (#6778) by Mouss (9f1d0fa11)
  • bug/medium: procurement: restrict procurement requests to items only (#6739) by Mouss (c1fbd4906)
  • bug/minor: teams: use team-specific archive flag for user filtering (#6776) by Mouss (74528201d)
  • bug/minor: openapi: remove default value for enums (#6790) by Mouss (26dd6d8e1)
  • fix: don't send onboarding email when user is already in team (#6801) by Karl Krägelin (2f4802836)
  • bug/minor: ui: fix buttons in tables are not readable (#6841) by Mouss (d4613885a)
  • security: containers: fix authorization bypass by Nicolas CARPi (b89ef7a53)
  • bug/minor: tags: enforce write permission on destroy action (#6858) by Mouss (f830e79ae)
  • bug/minor: scheduler: read bound entities subject to rw permissions (#6854) by Mouss (4b1467e04)
  • bug/medium: users: patchable field (#6857) by Mouss (e8a90192e)
  • bug/medium: ownership: enforce dedicated action for ownership transfer (#6860) by Mouss (5b23ca6c4)
  • bug/minor: ensure procurement request belongs to current team (#6842) by Elsa Touma (bc8b4e690)
  • bug/minor: fix notifications (#6867) by Elsa Touma (e625ca484)
  • bug/minor: restrict 'valid_until' to admin requesters (#6868) by Elsa Touma (4beae91ef)
  • bug/medium: api: guard user submodels with read permission check (#6865) by Mouss (ec9ddcbbc)
  • bug/minor: avoid raw rendering for custom fields (#6875) by Elsa Touma (1ac33cc82)
  • compounds: fix export csv call (#6878) by Nicolas CARPi (23b5d08b2)
  • bug/medium: fix nullable filter SQL precedence (#6889) by Mouss (42bd3a56e)
  • bug/minor: tinymce dark: fix path (#6896) by Mouss (7f16f9498)
  • bug/minor:malle: preserve selected category when editing cat/status fields (#6900) by Mouss (dcfe303f1)
  • bug/medium: custom fields: escape metadata parsing errors before rendering (#6910) by Mouss (21f4ceb58)
  • bug/minor: metadata: handle empty values for link-type extra fields (#6888) by Mouss (6b9db78fc)
  • bug/minor: theme: fix some dark mode items (#6902) by Mouss (e27df32cc)
  • bug/minor: shorter scope for request actions readOne() (#6911) by Elsa Touma (8f5f7995a)
  • bug/minor: shorter scope for steps readOne() (#6908) by Elsa Touma (0e373245f)
  • bug/minor: scheduler: prevent concurrent scheduler bookings from overlapping (#6909) by Mouss (41ae147ea)
  • bug/medium: permissions: fix batch permissions actions (#6904) by Mouss (15732a0a0)
  • bug/minor + feat: fix counting experiments not counting archived (#6916) by Nicolas CARPi (a18ff4b57)
  • bug/minor: tables: fix thead transparent (#6943) by Mouss (58e34e0c6)
  • bug/medium: search query: fix helpers (#6948) by Nicolas CARPi (6cb960bde)
  • bug/minor: normalize firstname lastname fields (#6966) by Elsa Touma (26882efc0)
  • bug/minor: apidoc: update patchuser2team (#6950) by Szilárd Andai (fbd397f70)
  • bug/medium: fix dfn cert cutoff date check (#6980) by Nicolas CARPi (f52cfa8c1)
  • bug/medium: fix permission filter & group filter (#6957) by Mouss (6ef653cbb)
  • bug/minor: authfail: use correct value for userid column (#6997) by Nicolas CARPi (df61766cb)
  • bug/minor: fix HTML rendering in ELN preview (#6993) by Elsa Touma (7d64374c0)
  • bug/minor: mfa: don't read mfa_secret from request (#6984) by Nicolas CARPi (d016f8fdb)
  • bug/minor: validate device token with userid claim (#6988) by Elsa Touma (e2baf2899)
  • bug/minor: ux/ui: remove text-white to unify buttons & icons, i18n for some buttons (#7025) by Mouss (a696ac6cc)
  • bug/minor: create procurement request only for items of your team (#7022) by Elsa Touma (344e8d484)
  • bug/minor: links: avoid title leakage in changelog (#6982) by Nicolas CARPi (ecfd93711)

Chore

  • doc: elabimg: update build instructions by Nicolas CARPi (a21de44ba)
  • doc: contributing: add triage guidelines (#6622) by Nicolas CARPi (9f7ede2ac)
  • doc: governance.md: refresh that file (#6624) by Nicolas CARPi (a162464d4)
  • security: ci: disable trivy for now by Nicolas CARPi (5249adbaf)
  • ci: pin typescript on cypress image and use sha pinning (#6636) by Nicolas CARPi (f1d6060c1)
  • ci: pin GitHub Actions to SHA-pinned commit versions (#6635) by Copilot (02b228613)
  • dev: rename Services/ApiParamsValidator to Params/Guard (#6634) by Nicolas CARPi (f9ba8f5d6)
  • dev: use Guard in Uploads (#6640) by Nicolas CARPi (72e2633d1)
  • bump: js and php dependencies (#6641) by Nicolas CARPi (ee20a02a8)
  • dev: mkbuildinfo: allow any version (master/prod/whatever) (#6643) by Nicolas CARPi (f8d68fe0e)
  • bump: nginx to 1.28.3 (#6644) by Nicolas CARPi (85a70b067)
  • bump: composer dependencies by Nicolas CARPi (90350e51f)
  • apidoc: document idps_sources endpoint (#6653) by Nicolas CARPi (49352326f)
  • refactor: scheduler: unify event patch logic and improve edit modal (#6555) by Mouss (d893f2346)
  • doc: elabimg: add addgene env for user/pass (#6669) by Nicolas CARPi (b653dc528)
  • ui: reorder navigation items for improved accessibility (#6673) by Mouss (92e923351)
  • dev: refactor thumbnail generation to use seekable streams (#6556) by Nicolas CARPi (4ba8d277f)
  • ci: pin GitHub Actions to SHA-pinned commit versions (#6682) by Mouss (bd64a0fc6)
  • dev: include chem-plugin repository code in here (#6650) by Nicolas CARPi (76753dd5a)
  • ux: booking params: preserve field values when disabling dependent inputs (#6680) by Mouss (9ed36b9f4)
  • ci: use actions/attest by Nicolas CARPi (6058df07b)
  • bump: marshmallow and fix bug (#6688) by Nicolas CARPi (b5c2f1278)
  • ci: dependabot: add cooldown setting (#6690) by Nicolas CARPi (d7548557b)
  • chem-plugin: bump flask (#6691) by Nicolas CARPi (c1e90a18f)
  • licensing: be more clear about provenance of files (#6687) by Nicolas CARPi (d7e8d399c)
  • chem-plugin: update gunicorn (#6697) by Nicolas CARPi (42cb66701)
  • ci: build chem-plugin with version tag on releases (#6698) by Nicolas CARPi (7723fa159)
  • bump: upgrade lodash-es (#6700) by Nicolas CARPi (cbb7a61cd)
  • chem-plugin: allow running it with read-only filesystem (#6705) by Nicolas CARPi (8505af752)
  • ci: cypress: fix some templates (#6702) by Mouss (c0acf3d77)
  • chem-plugin: dockerfile: use bytecode compilation flag from uv (#6712) by Nicolas CARPi (46213581b)
  • dev: introduce svelte (#6704) by Nicolas CARPi (092d3d201)
  • ci: add lockfile for cypress image (#6716) by Nicolas CARPi (a6d0bf9ef)
  • bump: fast-xml-parser (#6719) by Nicolas CARPi (e3f28b561)
  • dev: guard: allow '0' as non empty string (#6718) by Nicolas CARPi (8186ce841)
  • bump: update browser list (#6724) by Nicolas CARPi (0b0b6a9d3)
  • dev: rename functions and use isSysadmin (#6722) by Nicolas CARPi (1176c8be5)
  • dev: make use of getUserid() and getTeam() for Users (#6721) by Nicolas CARPi (5aa9b76a1)
  • ci: use persist-credentials: false for actions/checkout (#6723) by Nicolas CARPi (058538515)
  • dev: add missing use function calls for internal functions (#6720) by Nicolas CARPi (90e0b3062)
  • ui: rename Extra fields to Custom fields (#6730) by Nicolas CARPi (6619c7bed)
  • chem-plugin: gunicorn: add --no-control-socket flag (#6741) by Nicolas CARPi (9a1b9940e)
  • ux: users: show most recent user first (#6744) by Nicolas CARPi (2a8b908c4)
  • refactor/a11y: improve export menu semantics and accessibility (#6760) by Mouss (dbfc863ff)
  • elabimg: bump composer to 2.9.7 (#6731) by Nicolas CARPi (13ac01d17)
  • style/a11y: improve contrast and hover states for buttons and links (#6758) by Mouss (8f6f94709)
  • refactor: ui: unify scope selector and improve permissions modal UX (#6660) by Mouss (e6f37f4da)
  • ui: notification bell highlight (#6784) by Mouss (c9292bd6f)
  • ux: remove sysadmin option from user creation (#6786) by Abdel ATIA (db3d890c5)
  • apidoc: add missing endpoints and certs for idps (#6789) by Nicolas CARPi (c9fc00c20)
  • readme: add elAPI Plugins link (#6803) by Nicolas CARPi (e34d9ae8d)
  • ci: nightly: have a better version (#6807) by Nicolas CARPi (02866bbc1)
  • docs: replace 'docker-compose' with 'docker compose' in READMEs (#6812) by Mouss (f2f6b4c50)
  • refactor: uploads: unify action menu for table and grid layouts (#6791) by Mouss (e7deeaa18)
  • ci: bump dependencies for cypress container (#6825) by Nicolas CARPi (938446642)
  • dev: add script to generate many teams (#6826) by Nicolas CARPi (80b13f8cf)
  • ci: include short sha in edge version (#6827) by Nicolas CARPi (b64c6cf68)
  • ux: improve error message when no IdP are configured (#6828) by Nicolas CARPi (bf00e8184)
  • security: update nginx to 1.30.1 (#6829) by Nicolas CARPi (7f245ff0e)
  • ci: improve workflows (#6831) by Nicolas CARPi (d41ca77ac)
  • bump: cypress-html-validate and cypress in /containers/cypress (#6847) by dependabot[bot] (be467c61c)
  • Merge branch 'master' of github.com:elabftw/elabftw by Nicolas CARPi (9072558b0)
  • security doc: add @HuajiHD to the list (#6852) by Nicolas CARPi (eb7dfe2dc)
  • bump: composer dependencies (#6851) by Nicolas CARPi (78cffd19a)
  • ci: upgrade packages to fix issues (#6859) by Nicolas CARPi (d87a7870f)
  • build(deps): bump tmp from 0.2.5 to 0.2.6 in /containers/cypress (#6864) by dependabot[bot] (b5b67cb4a)
  • chore: change dfn issuing CA and make digicert default (#6850) by Nicolas CARPi (ccbb6b007)
  • bump: some js dependencies (#6874) by Nicolas CARPi (764b4f04f)
  • bump: composer dependencies (#6873) by Nicolas CARPi (6345ec815)
  • ci: circleci: use firefox in e2e tests (#6877) by Nicolas CARPi (77a5afd6f)
  • refactor: build table sort controls with DOM APIs (#6872) by Mouss (7c9ed87a4)
  • refactor: build dom fragment instead of rendering innerHTML (#6879) by Mouss (c2ceb7ae0)
  • ci: fix and update cimon (#6882) by Nicolas CARPi (8d5c3ae01)
  • ci: use wildcard (#6883) by Nicolas CARPi (ebfbbf07c)
  • ci: try and run cosign (#6885) by Nicolas CARPi (f54f8ca31)
  • bump: upgrade composer (#6886) by Nicolas CARPi (5709f0135)
  • refactor(units): centralize quantity units using Units enum (#6898) by Mouss (d6668a40d)
  • dev: add missing resolve.conditionNames in webpack config (#6912) by Nicolas CARPi (105a57f87)
  • build(deps): bump uvicorn from 0.42.0 to 0.46.0 in /containers/chem-plugin/fingerprinter (#6890) by dependabot[bot] (2c9964e2a)
  • ui/ux: improve show mode (#6853) by Nicolas CARPi (6f00f86b4)
  • dev: cleanup login markup (#6915) by Nicolas CARPi (e2ef0d9ee)
  • ux: ag-grid: increase default pagination (#6939) by Szilárd Andai (723cd0995)
  • dev: remove outdated comment (#6953) by Mouss (5cd5d7de4)
  • build(deps): bump tmp from 0.2.6 to 0.2.7 in /containers/cypress (#6954) by dependabot[bot] (02d36f5b1)
  • bump: form-data from 4.0.5 to 4.0.6 in /containers/cypress (#6965) by dependabot[bot] (03d25accf)
  • dev: remove dead code (#6967) by Nicolas CARPi (dcb7710d8)
  • perf: show mode: don't load metakeys on page load (#6968) by Nicolas CARPi (0d3eccc29)
  • perf: sql: improve entity read (#6969) by Nicolas CARPi (5fd1e9625)
  • perf: entity readall: only include compounds table join if necessary (#6970) by Nicolas CARPi (89e574570)
  • dev: cleanup: remove old idFilter from AbstractEntity (#6971) by Nicolas CARPi (1db307b5e)
  • ui: improve signature visibility (#6955) by Nicolas CARPi (73f2901e1)
  • ux: add custom id as default order by param (#6975) by Nicolas CARPi (2e5972de3)
  • ux: save date on change, not on blur (#6979) by Nicolas CARPi (722b38cd2)
  • doc: improve trademark docs (#6995) by Nicolas CARPi (6575048c8)
  • ui: idp modal: add missing hr (#6996) by Nicolas CARPi (43e47e46d)
  • readme: add elab2arc by Nicolas CARPi (da63d49c8)
  • readme: add sample tracking by Nicolas CARPi (276811616)
  • dev: remove bypasswrite in Teams class (#6999) by Nicolas CARPi (6685634e4)
  • dev: remove unused is_default from status/category (#7000) by Nicolas CARPi (f24068374)
  • dev: remove deprecated ActiveUser class (#7003) by Nicolas CARPi (0743f20ac)
  • dev: populate: give an api key to titi, tutu and tata too (#7002) by Nicolas CARPi (7f11426d2)
  • dev: remove public properties on AbstractEntity (#6972) by Nicolas CARPi (d1678d99d)
  • dev: add little perf script by Nicolas CARPi (c1bc5a636)
  • chore(deps): bump gunicorn from 25.1.0 to 26.0.0 in /containers/chem-plugin/indigo (#7014) by dependabot[bot] (a53d4e0b8)
  • chore(deps-dev): bump black from 26.3.1 to 26.5.1 in /containers/chem-plugin/indigo (#7013) by dependabot[bot] (5b63fb9e6)
  • chore(deps): bump epam-indigo from 1.40.0 to 1.43.0 in /containers/chem-plugin/indigo (#7011) by dependabot[bot] (dbcc9b4cb)
  • chore(deps): bump uvicorn from 0.46.0 to 0.49.0 in /containers/chem-plugin/fingerprinter (#7012) by dependabot[bot] (f9d200f80)
  • bump: js dependencies (#7021) by Nicolas CARPi (6438659ea)
  • bump: php dependencies (#7023) by Nicolas CARPi (f59463e10)
  • ux: prevent logo in header flash during page load (#7026) by Nicolas CARPi (96765c146)
  • ci: fix parallellism (#7028) by Nicolas CARPi (dfac46fd5)
  • ux: show signer name on icon hover in show mode (#7030) by Nicolas CARPi (4332c74f5)
  • i18n: update terms and french translations (#7034) by Nicolas CARPi (1fd3756bf)
  • i18n: regenerate ts files (#7035) by Nicolas CARPi (a74be044b)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track eLabFTW

Get notified when new releases ship.

Sign up free

About eLabFTW

Online lab notebook for research labs. Store experiments, use a database to find reagents or protocols, use trusted timestamping to legally timestamp an experiment, export as pdf or zip archive, share with collaborators….

All releases →

Related context

Beta — feedback welcome: [email protected]