Commit graph

2017 commits

Author SHA1 Message Date
Manuel Raynaud
969b677f70
fixup! ️(backend) implement etag and last_modified cache headers to fetch content
Some checks are pending
Helmfile lint / helmfile-lint (push) Waiting to run
2026-04-21 08:51:52 +02:00
Manuel Raynaud
8e7939438c
🔧(helm) set logger to debug level for feature environment
The feature environment are here for demo and debug purpose. For this we
want to have more logs and set them to the debug level.
2026-04-21 08:48:59 +02:00
Manuel Raynaud
01ced4af19
fixup! ️(backend) implement etag and last_modified cache headers to fetch content 2026-04-21 08:35:39 +02:00
Anthony LC
3d10f8d63d
fixup! fixup! ️(backend) implement etag and last_modified cache headers to fetch content
Some checks are pending
Helmfile lint / helmfile-lint (push) Waiting to run
2026-04-20 18:00:29 +02:00
Anthony LC
325f3ec9bb
🥅(sw) improve requests fallback
We improve overall SW requests fallback.
If the plugin fails we try to refetch the request
without the plugin modifications, meaning the
status code will be more in correlation with the
actual server response and not the plugin error.

We improved as well the cache fallback, if
the cache failed because a store was missing,
we delete the DB to be sure to have a DB in
correlation with the current app version.
2026-04-20 18:00:28 +02:00
Anthony LC
2302643e3a
✈️(SW) add offline support for content
We have added offline support for content.
When the content update fails, we save the new
content in the cache, and we will sync it later
with the SyncManager.
2026-04-20 18:00:28 +02:00
Anthony LC
6626138773
️(SW) cache content and metadata for API requests
We cache the content of API responses in the service
worker, so that we can serve them when the user
is offline.
We also cache the ETag and Last-Modified headers,
so that we can make conditional requests to the
server and avoid downloading the content again if
it hasn't changed.
2026-04-20 18:00:28 +02:00
Anthony LC
465caf0af5
fixup! ️(backend) implement etag and last_modified cache headers to fetch content 2026-04-20 18:00:28 +02:00
Manuel Raynaud
a779527f72
️(backend) implement etag and last_modified cache headers to fetch content
We want to give to the js client the ability to use some headers to
avoid fetching a content it already have. For this, the content endpoint
will return an ETag and Last-Modified headers corresponding to the file
content ETag and its last modification. For future fetch, the client can
use the If-None-Match or If-Modified-Since request headers, if one of
these headers are satisfied, the endpoint will return a 304 response. If
not it will still return a 200
2026-04-20 18:00:28 +02:00
Anthony LC
4a280a1575
👔(frontend) integrate dedicated content endpoint
To improve the performance of loading document content,
we have implemented a dedicated endpoint for
fetching document content. This allows us to load
the document metadata and content separately.
We updated the different components to utilize
this new endpoint, ensuring that the document content is
fetched and updated correctly.
2026-04-20 18:00:28 +02:00
Anthony LC
d49ea30169
🔥(clients) remove without_content query string
We now have a dedicated API to fetch only the doc
content, so we can remove the without_content
query string from the doc fetching API.
2026-04-20 17:56:53 +02:00
Manuel Raynaud
4b8aa897fb
📝(backend) add breaking changes document in UPGRADE.md file
We need to list the breaking changes made for the future version 5.0.0
2026-04-20 17:56:53 +02:00
Manuel Raynaud
d5a4468f96
️(backend) stream s3 file content with a dedicated endpoint
We created a dedicated endpoint to retrieve a document content. The
content of the s3 file is stream when this endpoint is fetch.
2026-04-20 17:56:53 +02:00
Manuel Raynaud
75806cea41
🔥(backend) remove content in document responses
The content was always loaded in the document reponse. We remove this
behavior in order to not make an http call to the s3 storage. To get the
document content it is needed now to use the new endpoint dedicated to
retrive the document content.
2026-04-20 17:56:53 +02:00
Manuel Raynaud
44af0d7cbc
(backend) create a dedicated endpoint to update document content
We want a dedicated endpoint to update a document content. Previously,
updating the content was made on the update action shared with all other
document's properties. When the title is updated, the response contains
the content, so a call to the s3 storage is made and we don't want this.
Isolating the content update will allow us in the next commit to remove
the content from the Document serializer.
2026-04-20 17:56:52 +02:00
Manuel Raynaud
a7aae2a64d
♻️(backend) rename documents content endpoint in formatted-content
The endpoint /api/v1.0/documents/{document_id}/content/ has been renamed
in /api/v1.0/documents/{document_id}/formatted-content/. formatted-content
seems more accurante and the content endpoint will be used for another
purpose more appropriated.
2026-04-20 17:56:52 +02:00
Anthony LC
ee90443cb2
(frontend) add documentation link in help menu
Some checks are pending
Update crowdin sources / install-dependencies (push) Waiting to run
Update crowdin sources / synchronize-with-crowdin (push) Blocked by required conditions
Docker Hub Workflow / build-and-push-backend (push) Waiting to run
Docker Hub Workflow / build-and-push-frontend (push) Waiting to run
Docker Hub Workflow / build-and-push-y-provider (push) Waiting to run
Docker Hub Workflow / notify-argocd (push) Blocked by required conditions
Build and Push to GHCR / build-and-push-backend (push) Waiting to run
Build and Push to GHCR / build-and-push-frontend (push) Waiting to run
Build and Push to GHCR / build-and-push-y-provider (push) Waiting to run
Helmfile lint / helmfile-lint (push) Waiting to run
Frontend Workflow / install-dependencies (push) Waiting to run
Frontend Workflow / test-front (push) Blocked by required conditions
Frontend Workflow / lint-front (push) Blocked by required conditions
Frontend Workflow / test-e2e-chromium (push) Waiting to run
Frontend Workflow / test-e2e-other-browser (push) Blocked by required conditions
Frontend Workflow / bundle-size-check (push) Blocked by required conditions
Frontend Workflow / uikit-theme-checker (push) Blocked by required conditions
Main Workflow / install-dependencies (push) Waiting to run
Main Workflow / lint-git (push) Waiting to run
Main Workflow / check-changelog (push) Waiting to run
Main Workflow / lint-changelog (push) Waiting to run
Main Workflow / lint-spell-mistakes (push) Waiting to run
Main Workflow / lint-back (push) Waiting to run
Main Workflow / test-back (push) Blocked by required conditions
We want to add a link to the documentation in
the help menu, to make it easier for users to find it.
2026-04-20 14:29:12 +02:00
Anthony LC
572074d141
🚸(frontend) show Crisp from the help menu
The Crisp button is very intrusive, it often overlaps
with element of the app.
We now show the Crisp modal
only when the user clicks on the "Get Support"
button in the help menu.
2026-04-20 14:29:12 +02:00
Anthony LC
599b909318
🛂(frontend) fix cannot manage member on small screen
We can now manage document members on small
screens (mobile and tablet). We improved the
overall responsive design of the doc share modal.
2026-04-20 11:00:41 +02:00
Anthony LC
5a687799d5
🥚(e2e) fix e2e easter egg
Some checks failed
Helmfile lint / helmfile-lint (push) Has been cancelled
Release Chart / release (push) Has been cancelled
The test e2e were not working on April 1st
because of the easter egg that changes
the document emoji to a fish.
2026-04-17 16:08:07 +02:00
virgile-deville
30ed563be4
📝(contributing.md) fix typos
Some checks failed
Update crowdin sources / install-dependencies (push) Has been cancelled
Update crowdin sources / synchronize-with-crowdin (push) Has been cancelled
Docker Hub Workflow / build-and-push-backend (push) Has been cancelled
Docker Hub Workflow / build-and-push-frontend (push) Has been cancelled
Docker Hub Workflow / build-and-push-y-provider (push) Has been cancelled
Docker Hub Workflow / notify-argocd (push) Has been cancelled
Main Workflow / install-dependencies (push) Has been cancelled
Build and Push to GHCR / build-and-push-y-provider (push) Has been cancelled
Build and Push to GHCR / build-and-push-backend (push) Has been cancelled
Build and Push to GHCR / build-and-push-frontend (push) Has been cancelled
Helmfile lint / helmfile-lint (push) Has been cancelled
Frontend Workflow / install-dependencies (push) Has been cancelled
Frontend Workflow / test-front (push) Has been cancelled
Frontend Workflow / lint-front (push) Has been cancelled
Frontend Workflow / test-e2e-chromium (push) Has been cancelled
Frontend Workflow / test-e2e-other-browser (push) Has been cancelled
Frontend Workflow / bundle-size-check (push) Has been cancelled
Frontend Workflow / uikit-theme-checker (push) Has been cancelled
Main Workflow / lint-git (push) Has been cancelled
Main Workflow / check-changelog (push) Has been cancelled
Main Workflow / lint-changelog (push) Has been cancelled
Main Workflow / lint-back (push) Has been cancelled
Main Workflow / lint-spell-mistakes (push) Has been cancelled
Main Workflow / test-back (push) Has been cancelled
So that it doesn't contain mistakes

Signed-off-by: virgile-deville <virgile.deville@beta.gouv.fr>
2026-04-16 13:59:33 +02:00
Cyril
e59d8a4631
️(frontend) make doc search result labels uniquely identifiable
Include each doc's relative update date in `SimpleDocItem` aria-label.
2026-04-15 15:52:53 +02:00
Cyril
9a5d81f983
️(frontend) redirect unmanaged 5xx to dedicated /500 page
Add /500 with coffee illustration; replace inline TextErrors for API 5xx
2026-04-14 17:36:23 +02:00
Cyril
31fea43729
️(frontend) structure 5xx error alerts
Use h1/p for 500/502/503; pass status from doc and version views.
2026-04-14 17:22:13 +02:00
Anthony LC
ff176d67ae
🚨(frontend) add default favicon.ico
We had a warning in the console about a
missing favicon.ico. This commit adds a default
one to prevent that warning.
2026-04-14 15:47:26 +02:00
Anthony LC
7dc7320dac
🚸(frontend) redirect on current url tab after 401
When multiple tabs were opened and a 401 error occurred,
the user was redirected to the login page, then
after login, the user was redirected to the page
where the last 401 error occurred.
We improved this behavior by saving the url per tab,
and after login, the user is redirected to the
last url of the current tab.
2026-04-14 14:48:15 +02:00
Anthony LC
d9334352bb
♻️(CI) factorized E2E tests into a separate workflow
We had to maintains 2 jobs, test-e2e-chromium and
test-e2e-other-browser, in the impress-frontend
workflow.
By factorising the E2E tests into a separate
workflow, we can now maintain only one job for
each browser, which is much simpler and easier
to maintain.
2026-04-13 11:36:23 +02:00
Anthony LC
d68d7ee31d
🐛(CI) add last-failed flag only if last-run is filled
We got cases where the last-run is empty, but the
last-failed flag is set to true. If that happens,
the workflow will fail because the last-run is empty.
We now check if the last-run is filled before
setting the last-failed flag.
2026-04-13 11:36:23 +02:00
renovate[bot]
0060c59615
⬆️(dependencies) update axios to v1.15.0 [SECURITY] 2026-04-13 08:30:36 +00:00
renovate[bot]
48fb17bf3e
⬆️(dependencies) update next to v16.2.3 [SECURITY] 2026-04-11 01:12:58 +00:00
pvrn
e652cdd040
(backend) Order pinned documents by last updated at
Sort favorite_list results by updated_at property descending.
    
Signed-off-by: Paul Vernin <paul.vernin@gmail.com>
2026-04-10 15:15:55 +00:00
Mohamed El Amine BOUKERFA
1ebdda8c9e
🐛(backend) Fix unreachable exception handler for URLValidator
The exception block was never being executed because URLValidator raises
django.core.exceptions.ValidationError, not
drf.exceptions.ValidationError, so the except block was dead code.


Signed-off-by: Mohamed El Amine BOUKERFA <boukerfa.ma@gmail.com>
2026-04-10 13:21:56 +00:00
virgile-deville
d0bf24f368
📝(PR template) add AI checklist
so that we can keep  welcoming external contributions

Signed-off-by: virgile-deville <virgile.deville@beta.gouv.fr>
2026-04-10 14:32:30 +02:00
virgile-deville
2da87baef5
📝(contributing.md) revamp and AI policy
so that we can keep  welcoming external contribution

Signed-off-by: virgile-deville <virgile.deville@beta.gouv.fr>
2026-04-10 14:32:29 +02:00
Sylvain Boissel
3399734a55
🐛(backend) fix race condition in reconciliation requests CSV import
The call to the background task is now wrapped in a on_commit to ensure
that it isn't called before the save is finished, in order to avoid race
condition issues.
2026-04-10 10:46:56 +00:00
Sylvain Boissel
a29b25f82f
🐛(backend) create_for_owner: add accesses before saving doc content
We add the User Accesses before saving content so the user is sure to
have access to the the first version when creating a doc through
create_for_owner (fixes #2123)
2026-04-10 10:20:37 +00:00
Anthony LC
c1e104a686
🐛(frontend) abort check media status unmount
When a media file is uploaded, the application
checks its status every 5 seconds until it
becomes 'ready'. If the user navigates away from
the page before the media is ready, the
application should stop checking the status to
avoid unnecessary API calls. This can be achieved
by using an AbortController to signal when the
component is unmounted, allowing the loop to
exit gracefully.
2026-04-09 11:51:19 +02:00
Anthony LC
21c73fd064
🔖(patch) release 4.8.6
Added:
- 🚸(frontend) allow opening "@page" links with
  ctrl/command/middle-mouse click
-  E2E - Any instance friendly

Changed:
- ♻️(backend) do not paginate threads list response
- 💄(frontend) Use StyledLink for sub doc tree

Fixed:
- 🐛(frontend) Fix drop cursor creating columns
- 🐛 Fixed side effects between comments and versioning
2026-04-09 09:52:00 +02:00
AntoLC
e2d0e7ccc7
🌐(i18n) update translated strings
Update translated files with new translations
2026-04-08 16:56:36 +02:00
Paul Vernin
2ebfa1efbf
💄(frontend) Use StyledLink for sub doc tree
Replace ButtonBox by StyledLink in DocSubPageItem
so ctrl+click on the sub document title open a new browser tab

Signed-off-by: Paul Vernin <paul.vernin@gmail.com>
2026-04-08 16:37:47 +02:00
Anthony LC
b5d9c58761
💄(frontend) replace icons in tree children action
We replace icons with what is used in the ui kit.
By replacing the icons, we also fix the height
problems with Firefox.
2026-04-08 16:15:30 +02:00
Anthony LC
c58deb11e8
🏷️(frontend) adapt thread new type
We stopped to use pagination for thread comments,
so we need to adapt the thread type to reflect that.
2026-04-08 14:04:03 +02:00
Manuel Raynaud
9a1dae4908
♻️(backend) do not paginate threads list response
The threads list action was paginated its response. this is not the
behavior we want. all threads should be loaded when the document is
loaded.
2026-04-08 10:59:36 +02:00
Anthony LC
dba762759e
🐛(frontend) Fixed side effects between comments and versionning
We fixed 2 side effects between comments and versionning:
- When going from a version, it was not possible
to add a comment anymore. This was due to the fact
that the versionning was resetting the comment store.
- When restoring a version, we now reset the comment
store to avoid having comments that are not relevant
anymore.
2026-04-08 09:36:25 +02:00
Anthony LC
563a6d0e08
🐛(frontend) Fix drop cursor creating columns
When dropping content, the drop cursor was creating
new columns. This fix ensures that the
drop cursor behaves correctly and does not
create unnecessary columns.
2026-04-07 18:04:45 +02:00
Anthony LC
52c998ee5f
️(e2e) replay only failed tests when rerunning the test suite
We improved the test suite to only replay failed
tests when rerunning the test suite.
This allows us to focus on fixing the failed
tests without having to wait for the entire
test suite to run again.
We add the Browser in cache to speed up the test
execution and reduce the time it takes to run the tests.
2026-04-07 16:11:18 +02:00
Anthony LC
a01c5f97ca
(e2e) e2e instances compatibility
We want to be able to run our e2e tests on
any instance of Docs, to do so we need to make
some adjustments to our tests and configuration.
We will use environment variables to configure
the tests.
2026-04-07 16:11:18 +02:00
Anthony LC
883d65136a
🔒️(CI) add permissions level on workflow
We add permissions level on workflow to avoid
warning in github action logs.
This is a warning and not an error,
but it is good to have a clean log without warnings.
2026-04-07 14:52:31 +02:00
Emmanuel Pelletier
4dcf752ff9
🚸(frontend) allow opening "interlinks" with ctrl/command/middle mouse
Links to other pages created through the "@" shortcut are not actual
anchor (`<a>`) elements seemingly due to conflicts with lower-lvl
code, noticeably when drag&dropping the elements.

So those "links" are actually span and we must handle the
"link behavior" ourselves.

This adds more usual "link behavior" to thoses, allowing users to
ctrl+click, command+click, shift+click and middle-mouse click to
interact with the links and open them in a new tab or new window.

Signed-off-by: Emmanuel Pelletier <manu@habite.la>
2026-04-07 11:14:01 +02:00
renovate[bot]
be38e68dd5
⬆️(dependencies) update lodash to v4.18.1 [SECURITY] 2026-04-03 18:39:40 +00:00