Commit Graph
943 Commits
Author SHA1 Message Date
Nathan Vasse 5601f4368e ✨(frontend) add PDF viewer core components
Implements a full-featured PDF viewer with thumbnail
sidebar, zoom controls, page navigation and external
link interception. Includes polyfills for older browsers
and a fallback component for unsupported environments.
2026-03-30 10:54:34 +02:00
Nathan Vasse accbe04f78 ✨(frontend) add PDF viewer dependencies and build config
Adds react-pdf and react-virtualized for the PDF viewer
feature. The next.js config transpiles pdfjs-dist to
support Safari < 17.4 which lacks ES2023 static
initialization blocks.
2026-03-30 10:54:31 +02:00
Nathan Vasse 2a419c9523 📝(other) add local network setup documentation
Documents how to access the dev environment from other
devices on the local network, useful for mobile testing.
2026-03-30 10:54:06 +02:00
Nathan Vasse 622fb813bc 🔧(backend) allow extra CSRF origins via env variable
When testing on local network devices (phones, tablets)
the Django CSRF check blocks requests from non-localhost
origins. This merges CSRF_TRUSTED_ORIGINS env var into
the default list.
2026-03-30 10:54:06 +02:00
Nathan Vasse 836da56f2d 🔧(other) add .claude to gitignore
Claude Code generates a local .claude directory for
project configuration. It should not be tracked.
2026-03-30 10:53:20 +02:00
Nathan Vasse d882744c00 🐛(frontend) fix React SVG attributes in AddFolderButton
React requires camelCase for SVG attributes. Using
fill-rule and clip-rule triggers warnings and may cause
rendering issues.
2026-03-30 10:53:20 +02:00
Manuel Raynaud 2fc865e0f6 ⬆️(ds-proxy) upgrade ds-proxy to version 2.0.0-alpha.4
To upgrade to the version 2.0.0-alpha.4, the salt is moved to the
keyring
2026-03-27 10:32:56 +01:00
Nathan Vasse bf51755ff9 🔖(release) version sdk package
- 🏷️(sdk) update Item interface by adding url_permalink
@gouvfr-lasuite/drive-sdk@0.0.2
2026-03-27 10:14:08 +01:00
Nathan Vasse 5b109e1e25 📝(sdk) update CONTRIBUTING.md
The old version was not really up to date with our current practices.
Let's update it.
2026-03-27 10:13:25 +01:00
jbpenrathandNathan Vasse 4d4a15876f 🏷️(sdk) update Item interface
A new property `url_permalink` has been added recently but the Item interface
in the sdk packages has not been updated accordingly.
2026-03-27 09:49:28 +01:00
neilcroft 54a293b6a5 🐛(backend) handle race condition on concurrent LinkTrace creation
Handle race condition where two concurrent retrieve requests pass the
exists() check and both attempt to create a LinkTrace for the same
user/item pair, violating the unique constraint.

Fixes #611
2026-03-23 14:40:09 +01:00
neilcroft c4188f8342 🐛(backend) fix hard delete of files created by other users
Allow folder owners/admins to hard delete files in their trashbin
even when the file was created by another user.

Fixes #604
2026-03-23 12:58:44 +01:00
Manuel Raynaud f09d6d15a9 ✨(backend) new action to duplicate a file item
A user with at leat editor role, connected can duplicate a file item
which has its upload_state ready. The duplicate_file task is used to do
the copy of the file on the storage.
2026-03-20 13:30:51 +01:00
Manuel Raynaud 238d6eb92e ✨(backend) add a task to duplicate a file
We plan to add an action to duplicate an item. We want to use a celery
task to make the copy using the s3 client. The task is retried 10 times
if failing and then the item is deleted if the copy fail after 10
retriees.
2026-03-20 13:30:51 +01:00
Manuel Raynaud b91c2d1777 🛂(backend) add duplicate in the item abilities
In order to add in next commit a duplicate action in the ItemViewset, we
add a `duplicate` entry in the item abilities. A user can duplicate a
file if he can update it.
2026-03-20 13:30:51 +01:00
Manuel Raynaud 1bb2c556fc 🔖(minor) bump release version 0.15.0
Added

- 🌐(frontend) update Dutch translation for create label
- ✨(frontend) add create folder and import file actions
- 🐛(frontend) add action menu to mobile breadcrumbs
- 🐛(frontend) app stabilization

Changed

- ⚡️(CI) optimize Docker Hub workflow
- ♻️(frontend) replace WorkspaceIcon with FolderIcon in breadcrumbs
- ✨(backend) exclude pending items from listing views
- ✨(frontend) scale upload progress to 90% before completion

Fixed

- 🐛(backend) allow inviting external person on item with no direct access
- 🐛(backend) stop storing numchild in database use annotation instead
- 🐛(backend) sanitize filename to be compatible with filesystems

Removed

- 🔥(backend) remove unused ServerToServerAuthentication backend
v0.15.0-preprod v0.15.0
2026-03-16 11:58:34 +01:00
renovate[bot]andGitHub 33fc2de6ba ⬆️(dependencies) update PyJWT to v2.12.0 [SECURITY] 2026-03-14 01:24:57 +00:00
ChristopherSpeltandManuel Raynaud feb82b29e7 🌐(front) update Dutch translation for create label
Signed-off-by: ChristopherSpelt <christopherspelt@icloud.com>
2026-03-13 08:52:39 +01:00
Manuel Raynaud b84a640cc1 🔧(backend) allow uploading mindmap manager files
Allow the upload of file of type mindmap manager using the extension
.mmap
2026-03-12 18:03:42 +01:00
Nathan PanchoutandClaude Opus 4.6 1f83154777 🐛(front) fix whitespace in ExplorerTreeItem
Remove extra whitespace: double space before closing tag and
trailing blank line.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 10:23:45 +01:00
Nathan PanchoutandClaude Opus 4.6 791ddb3bfa ⚡️(front) keep previous data while refetching item
Add placeholderData to useItem query so the previous item data
remains visible during refetch, preventing flickering and layout
shifts when the query is revalidated.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 10:17:15 +01:00
Nathan PanchoutandClaude Opus 4.6 d066f0ac1d ✨(front) use classic variant for RhfInput
Switch RhfInput to the classic variant with hidden label and
placeholder matching the label text, for a cleaner inline
appearance in forms.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 10:17:15 +01:00
Nathan PanchoutandClaude Opus 4.6 ef24e2b5c3 🐛(front) update right panel item on rename
When renaming an item, also update the right panel's forced item
if it's currently displaying the renamed item. This ensures the
panel title stays in sync after a rename without requiring a
manual refresh.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 10:17:15 +01:00
Nathan PanchoutandClaude Opus 4.6 dbd7715046 ✨(front) reorder action menu and fix folder favorite
Reorganize the context menu items for better UX: share and download
are now grouped first, followed by favorite, then rename/move, then
info, and finally delete. Also fix the favorite handler to only add
the item to the tree sidebar when it's a folder, preventing files
from incorrectly appearing in the favorites tree.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 10:17:15 +01:00
Nathan PanchoutandClaude Opus 4.6 716d971a9b 🐛(front) fix ItemIcon large size to 32px
Reduce the large icon size from 48px to 32px to better fit the
grid layout. Pass `size={IconSize.LARGE}` explicitly in
EmbeddedExplorerGridNameCell so the icon renders at the correct
size. Also fix trailing commas in ItemIcon.tsx.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 10:17:15 +01:00
Nathan PanchoutandClaude Opus 4.6 acb28e5734 ✨(front) add custom zoom icons for ImageViewer
Replace the material icons (zoom_in, zoom_out) with custom SVG icons
(ZoomPlusIcon, ZoomMinusIcon, ResetZoomIcon) for a more polished
image viewer toolbar. Also update IconSvg to support numeric size
prop, add button styles in ImageViewer.scss, and fix trailing commas
throughout the component.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 10:17:15 +01:00
Nathan PanchoutandClaude Opus 4.6 db5b0f3453 🐛(front) fix optional chaining on item properties
Add missing optional chaining operators to prevent runtime errors
when accessing `abilities.children_create` in AppExplorerBreadcrumbs
and `creator.id` in EmbeddedExplorerGridBreadcrumbs. These properties
can be undefined when the item data is not fully loaded yet.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 10:17:15 +01:00
Nathan PanchoutandClaude Opus 4.6 356da2b4fa ⬆️(front) bump @gouvfr-lasuite/ui-kit to 0.19.10
Update the ui-kit dependency from 0.19.9 to 0.19.10 to get
the latest fixes and features from the design system.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 10:17:15 +01:00
Nathan VasseandNathan Panchout 3387246471 📝(doc) update changelog
Based on the last changes, update the changelog to
reflect the commits.
2026-03-12 10:17:15 +01:00
Julien Maupetit 42e2a4bb1a 🔧(backend) update maximal line length to 100
We should be consistent between tools configuration (ruff and pylint).
2026-03-11 16:37:10 +01:00
Julien Maupetit 088665c1cd 🚨(backend) activate pyflakes ruff rules
Activate pyflakes rules:
https://docs.astral.sh/ruff/rules/#pyflakes-f
2026-03-11 16:37:10 +01:00
Julien Maupetit 01dd5aed8d 🔧(project) split ruff check and fix actions
Separating static code analysis and fixing it in two distinct actions
offers more flexibility.
2026-03-11 16:37:10 +01:00
Hadrien BlancandNathan Vasse 5e472506a6 📝(doc) fix various typos
Fix various typos in documentation and readme files.
2026-03-11 14:57:28 +01:00
Nathan Vasse 6b56553d89 ✅(backend) fix e2e search fixture for pending exclusion
File items created by the search fixture were left with
upload_state=PENDING (set automatically on first save),
so the new pending items exclusion filter hid them from
search results. Set upload_state to READY for file items.
2026-03-11 11:18:14 +01:00
Nathan Vasse 37a949caa2 🔧(backend) fix lint warning in external API test
Remove unnecessary f-string prefix where no variable
interpolation is used.
2026-03-11 11:18:14 +01:00
Nathan Vasse 79dc34c31d 🔧(helm) schedule cronjob for clean_pending_items
Run the cleanup command once a day to automatically
remove pending items that were never fully uploaded.
2026-03-11 11:18:14 +01:00
Nathan Vasse 0dde4d27bc ✨(backend) add management command to clean stale pending items
Pending items that were never fully uploaded remain invisible
but still occupy storage. This command deletes items stuck in
pending state beyond a configurable threshold (default 48h).
2026-03-11 11:18:13 +01:00
Nathan Vasse 51c71e821c 📝(doc) update changelog
Based on the last changes, update the changelog to
reflect the commits.
2026-03-10 16:37:28 +01:00
Nathan Vasse 9befeaad12 ✅(backend) adapt tests for pending items exclusion
Existing tests now set upload_state=READY on file items
so they remain visible after the pending exclusion filter.
New dedicated tests verify that pending items are excluded
from list, children, recents and search endpoints.
2026-03-10 16:37:28 +01:00
Nathan Vasse ffbba8bf5c ✨(backend) exclude pending items from listing views
Items with upload_state=PENDING are now filtered out from
list, children, recents and search endpoints. This avoids
showing files to other users before the upload is complete.
2026-03-10 16:37:28 +01:00
Nathan Vasse bb28499ab1 ✨(frontend) scale upload progress to 90% before completion
The progress handler was skipping 100% entirely, leaving
the indicator stuck before the upload-ended call. Instead,
we now scale the 0-100 range to 0-90 so the user sees
smooth progression while the final 10% is reserved for
the upload-ended endpoint confirmation.
2026-03-10 15:30:05 +01:00
renovate[bot]andGitHub 21bdaaaa38 ⬆️(dependencies) update python dependencies 2026-03-09 00:41:20 +00:00
Manuel Raynaud d924b47887 🐛(backend) sanitize filename to be compatible with filesystems
Filename were used as it, provided by the user. We want to force
sanitization on them to ensure they will be always compatible with
filesystems.
2026-03-05 16:25:45 +01:00
Manuel Raynaud c445215e91 ⬆️(backend) upgrade joserfc to version 1.6.3
Upgrade joserfc to version 1.6.3 in order to fic the
CVE-2026-27932
2026-03-05 14:27:51 +01:00
Manuel Raynaud d406bf5f47 ⬆️(upgrade django to version 5.2.12
Upgrade django to version 5.2.12 in order to fix the
CVE-2026-25673
2026-03-05 14:22:22 +01:00
Manuel Raynaud 725bf12564 🐛(backend) stop storing numchild in database use annotation instead
In the item model the properties numchild and numchild_folder must be
maintain by doing a +/- 1 operation in several actions. Maintaining is
error prone, hard to catch and can have lot of root cause we can't
identified. We choose to use annotation instead and to compute the value
when needed.
2026-03-05 14:16:22 +01:00
Nathan Panchout 7f5136c332 ✨(front) enhance AppExplorer and breadcrumbs
- Added a new `NewFolderIcon` component for creating folders.
- Updated `AppExplorerBreadcrumbs` to replace `WorkspaceIcon` with
`FolderIcon`.
- Introduced an `ItemActionDropdown` to manage item actions, including
folder creation.
- Improved layout in `AppExplorer.scss` by adding `justify-content:
space-between` for better alignment.
2026-03-03 15:28:32 +01:00
Manuel Raynaud bd44d4aab8 🐛(backend) allow inviting external person on item with no direct access
When a user with priviledged role on an item but inherited he can not
invite external person. We refacto the invitation viewset, serializer
and permission to check roles against all the tree.
2026-03-03 14:46:54 +01:00
Manuel Raynaud a19d70cb4e 🔥(backend) remove unused ServerToServerAuthentication backend
The backend ServerToServerAuthentication is not used in the application
and will not be used. We decided to remove it.
2026-03-03 14:18:21 +01:00
Manuel Raynaud e688fd130e 🔧(helm) add missing default probes configuration
For the backend probes, some default value are missing. We need to add
the periodSeconds, timeoutSeconds and the failureThreshold
2026-02-27 08:33:50 +01:00