Skip to content

Conversation

@StephanMeijer
Copy link
Collaborator

@StephanMeijer StephanMeijer commented Nov 15, 2025

Purpose

We can now import docx and and md files just by dropping them into the docs grid area.
To do so we added a new container "docspec", which uses the docspec service to convert these formats to Blocknote format.

Import of (markdown) documents. See #1567 #1569.

Demo

Docs.1.online-video-cutter.com.mp4

@github-actions
Copy link

github-actions bot commented Nov 15, 2025

Size Change: +18.5 kB (+0.44%)

Total Size: 4.19 MB

Filename Size Change
apps/impress/out/_next/static/bc3e3f06/_buildManifest.js 887 B +887 B (new file) 🆕
apps/impress/out/_next/static/c3c2b460/_buildManifest.js 0 B -887 B (removed) 🏆
apps/impress/out/_next/static/chunks/3812.js 0 B -768 kB (removed) 🏆
apps/impress/out/_next/static/chunks/4370.js 785 kB +785 kB (new file) 🆕
apps/impress/out/_next/static/chunks/8495.js 65.2 kB +1.87 kB (+2.96%)

compressed-size-action

@github-actions
Copy link

🚀 Preview will be available at https://1609-docs.ppr-docs.beta.numerique.gouv.fr/

You can use the existing account with these credentials:

  • username: docs
  • password: docs

You can also create a new account if you want to.

Once this Pull Request is merged, the preview will be destroyed.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@StephanMeijer StephanMeijer force-pushed the feature/doc-import branch 2 times, most recently from a9c28e9 to 9cef0a0 Compare January 8, 2026 11:01
@socket-security
Copy link

socket-security bot commented Jan 9, 2026

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report

AntoLC pushed a commit that referenced this pull request Jan 9, 2026
Refactored converter services based on PR #1609 review comments:
- Renamed parameter to `data` across all convert methods for consistency
- Replaced recursive call with explicit sequential calls for readability
- Hardcoded CONVERSION_API_SECURE=True in Production class for security
- Removed unused YdocConverter import from viewsets.py
- Updated tests to match new error message wording

Signed-off-by: Stephan Meijer <me@stephanmeijer.com>
@AntoLC AntoLC force-pushed the feature/doc-import branch from df60fc6 to e71eb79 Compare January 9, 2026 09:24
@StephanMeijer StephanMeijer changed the title Draft: ✨ Import of documents ✨ Import of documents Jan 12, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 30 out of 35 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

AntoLC pushed a commit that referenced this pull request Jan 13, 2026
Refactored converter services based on PR #1609 review comments:
- Renamed parameter to `data` across all convert methods for consistency
- Replaced recursive call with explicit sequential calls for readability
- Hardcoded CONVERSION_API_SECURE=True in Production class for security
- Removed unused YdocConverter import from viewsets.py
- Updated tests to match new error message wording

Signed-off-by: Stephan Meijer <me@stephanmeijer.com>
@AntoLC AntoLC force-pushed the feature/doc-import branch 2 times, most recently from 1e06ed7 to 33ef8dc Compare January 13, 2026 13:06
AntoLC pushed a commit that referenced this pull request Jan 13, 2026
Refactored converter services based on PR #1609 review comments:
- Renamed parameter to `data` across all convert methods for consistency
- Replaced recursive call with explicit sequential calls for readability
- Hardcoded CONVERSION_API_SECURE=True in Production class for security
- Removed unused YdocConverter import from viewsets.py
- Updated tests to match new error message wording

Signed-off-by: Stephan Meijer <me@stephanmeijer.com>
@AntoLC AntoLC force-pushed the feature/doc-import branch from 33ef8dc to cbd85a0 Compare January 13, 2026 13:10
AntoLC pushed a commit that referenced this pull request Jan 13, 2026
Refactored converter services based on PR #1609 review comments:
- Renamed parameter to `data` across all convert methods for consistency
- Replaced recursive call with explicit sequential calls for readability
- Hardcoded CONVERSION_API_SECURE=True in Production class for security
- Removed unused YdocConverter import from viewsets.py
- Updated tests to match new error message wording

Signed-off-by: Stephan Meijer <me@stephanmeijer.com>
@AntoLC AntoLC force-pushed the feature/doc-import branch from cbd85a0 to dde68a3 Compare January 13, 2026 13:27
StephanMeijer and others added 8 commits January 14, 2026 10:26
We can now import documents in formats .docx and .md.
To do so we added a new container "docspec", which
uses the docspec service to convert
these formats to Blocknote format.

More here: #1567 #1569.
Adapt the docs grid title bar to align with the
new design. We will add a upload button in a
future iteration.
Add import document area with drag and drop
support in the docs grid component.
We can now import docx and and md files just
by dropping them into the designated area.

We are using the `react-dropzone` library to
handle the drag and drop functionality.
Updated docspec service image from 2.0.0 to 2.4.4 to
include latest features and bug fixes.

Signed-off-by: Stephan Meijer <me@stephanmeijer.com>
Added comprehensive tests covering DocSpec converter service,
converter orchestration, and document creation with file uploads.

Tests validate DOCX and Markdown conversion workflows, error
handling, service availability, and edge cases including empty
files and Unicode filenames.

Signed-off-by: Stephan Meijer <me@stephanmeijer.com>
Refactored converter services based on PR #1609 review comments:
- Renamed parameter to `data` across all convert methods for consistency
- Replaced recursive call with explicit sequential calls for readability
- Hardcoded CONVERSION_API_SECURE=True in Production class for security
- Removed unused YdocConverter import from viewsets.py
- Updated tests to match new error message wording

Signed-off-by: Stephan Meijer <me@stephanmeijer.com>
Added Helm templates for docspec deployment and service to enable
document specification conversion in the Kubernetes environment.
Updated Tiltfile, compose.yml, and Helm values to
configure docspec integration alongside the
backend converter service for document import functionality.
Copy link
Collaborator

@AntoLC AntoLC left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Frontend perspective works perfectly !
Bravo ! 🎉

We can try the feature here https://1609-docs.ppr-docs.beta.numerique.gouv.fr/

See: #1609 (comment)

Some tests files if you need:

test_import.docx
test_import.md

@virgile-dev
Copy link
Collaborator

Holy molly ! Let me try it.

Copy link
Member

@lunika lunika left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice job !


content = serializers.CharField(required=False)
websocket = serializers.BooleanField(required=False, write_only=True)
file = serializers.FileField(required=False, write_only=True, allow_null=True)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no check on the file size. You should check what is made in the FileUploadSerializer
The max_length should be set to 255. The filename will be used as document title. And the title max length is 255.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

(DocSpec) Infrastuctural integration with La Suite (Docker Compose, Helm) (DocSpec) Integration between DocSpec and La Suite Docs

5 participants