Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Partage de contenu sur d'autres plateformes depuis do·doc #1030

Open
Pixflowave opened this issue Dec 10, 2024 · 9 comments
Open

Partage de contenu sur d'autres plateformes depuis do·doc #1030

Pixflowave opened this issue Dec 10, 2024 · 9 comments
Milestone

Comments

@Pixflowave
Copy link

fut un temps il était possible de partager du contenu depuis les liens créés via do·doc. Est-il possible de retrouver cette option ?

cette méthode peut-être ? https://observablehq.com/@fil/triangular-tiling-of-icosahedron

Capture d’écran 2024-12-10 à 17 43 44

mon usage principal c'est de pouvoir intégrer des images dans des éditeurs de texte en collaboratif tel que https://github.com/EcrituresNumeriques/stylo ou dans framateam ;-)

@jubonhomme
Copy link
Collaborator

C'est déjà possible dans la version 11 de do•doc.
Quand on ouvre un média dans "collecter" il y a plusieurs façon de partager un média directement à partir du bouton "options" en haut à droite de la fenêtre

Exemple de ce média :
https://test11.dodoc.fr/+hello-test/test-11?projectpanes=%5B%7B%22type%22%3A%22collect%22,%22size%22%3A100,%22focus%22%3A%22ab2f0201.jpg.meta.txt%22%7D%5D

image

"Partager" permet d'avoir un lien direct vers ce média et un code QR qui s'ouvrira en pleine page dans un navigateur
Exemple avec celui ci :
https://test11.dodoc.fr/_previewmedia?path_to_meta=spaces%2Fhello-test%2Fprojects%2Ftest-11%2Fab2f0201.jpg.meta.txt

image

"Lien d'intégration" est un lien qui permet une réutilisation dans d'autres applications
Exemple du lien d'intégration
https://test11.dodoc.fr/spaces/hello-test/projects/test-11/ab2f0201.jpg

image

@louis-ev
Copy link
Member

Le soucis dont parle @Pixflowave est l'interdiction de charger des médias sur un autre domaine/site, qui est une nouveauté de la v11 (ajouté pour des questions de sécurité). Voir EcrituresNumeriques/stylo#1142 (comment)

Je réfléchis à la meilleure manière de résoudre ça – soit en assouplissant cette règle, soit en permettant de la régler instance par instance (par exemple, par les admins d'instance uniquement).

@louis-ev
Copy link
Member

Je propose, post-v11, d'ajouter la possibilité de définir ce qu'on souhaite pour cette règle là dans le panneau admin : soit, que les médias ne peuvent pas être intégrés ailleurs (par défaut), soit qu'ils peuvent être intégrés partout, soit qu'ils ne peuvent être intégrés que sur les domaines faisant parti de la liste suivante (champ à remplir, en indiquant par exemple observablehq.com, umap.openstreetmap.fr).

@Pixflowave
Copy link
Author

On peut imaginer pouvoir le régler par espace ou projet ?

@louis-ev
Copy link
Member

J'ai peur que ça ajoute un point de fragilité : pour chaque chargement du média ailleurs (potentiellement, des milliers de fois par minute sur un site à fort traffic), il faudrait aller vérifier si l'espace ou le projet l'autorise. C'est nettement plus lourd que de juste afficher le média. À un niveau général c'est géré entièrement en mémoire (rapide) dans tous les cas, moins de risque à priori.

C'est un sujet délicat le partage de ressources entre sites webs (CORS), il faudrait que je trouve un autre dev pour avoir son avis ( @thom4parisot coucou si jamais tu as un peu de temps pour me donner ton avis je suis preneur :) ).

@louis-ev
Copy link
Member

Après un peu de relecture de mon code, je réalise que les appels à l'api (qui charge les données) ne sont pas bloqués depuis d'autres domaines, donc bloquer les ressources paraît un peu idiot… Peut-être qu'on peut désactiver cette règle pour la v11, pour que les ressources puissent être facilement accessibles, et améliorer ça par la suite (et vu que la question concerne principalement les versions en lignes, ça sera facile de les mettre à jour avec le nouveau système qui sera rétro-compatible).

Donc :

  • v11, possibilité d'inclure sur d'autres sites des ressources.
  • v12, système évoqué ci-dessus

Ça vous paraît bien ? Tu valides @Pixflowave ?

@Pixflowave
Copy link
Author

Pixflowave commented Dec 17, 2024

Je n'ai pas d'urgence à partager des ressources avec la v11 (j'utilise do·doc principalement sur do.doc.neguentropie.art qui est en v9) mais cette proposition me semble appropriée au rythme du développement. j'ai découvert le phénomène un testant Stylo avec la v11 ;-) (https://do.doc.dev.pixflowave.fr)

louis-ev added a commit that referenced this issue Dec 17, 2024
@thom4parisot
Copy link

thom4parisot commented Dec 18, 2024

Je trouve ça différent d'embarquer une ressource (genre image/vidéo contribuée dans do·doc) ou un pad interactif dans une autre application :

  • média do·doc embarquée ailleurs : le risque est pour l'autre plate-forme (surtout si c'est un script, l'autre plate-forme laisse la possibilité d'exécuter du code distant)
  • pad interactif embarqué ailleurs : le risque est pour do·doc qui peut potentiellement être piloté par sa frame parent, et potentiellement pour la frame parent si du code malicieux do·doc (plus probablement via une de ses dépendances de code) est exécuté par l'autre plate-forme (idem).

En tous cas, comme ça, c'est ce qui me vient.

@louis-ev
Copy link
Member

Merci @thom4parisot ! C'est très clair.

Du coup si je te suis, une règle CORP cross-origin ne pose pas nécessairement de problèmes, je pense en faire le choix par défaut. Par contre je me dis que pour permettre aux utilisateurs de contrôler (un peu) la diffusion de leurs contenus, je vais ajouter côté admin un réglage pour passer de cross-origin à same-origin.

Côté API je pense bloquer les requêtes externes et ajouter un réglage côté dev (dans le fichier settings.json) pour permettre l'accès distant à certains domaines. À voir s'il faut aller plus loin mais ça fait une bonne base je trouve.

@louis-ev louis-ev added this to the do•doc 12 milestone Dec 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants