Linkr
Accueil Ressources Outils Documentation Blog Démo
EN
  • Qu'est-ce que Linkr ?
  • Modes de déploiement
  • Démarrage rapide
  • Installation locale
  • Avec Docker
  • Installation manuelle
  • Client-only
  • Votre premier projet
  • Espaces de travail et projets
  • Le pipeline de données
  • Entités et partage
  • Versioning et collaboration
  • Vue d'ensemble
  • Projets
  • Wiki
  • Plugins
  • Membres et rôles
  • Paramètres
  • Schémas
  • Bases de données
  • Sous-bases dérivées
  • Qualité des données
  • Catalogue de données
  • Collections de scripts SQL
  • Pipelines ETL
  • Présentation
  • Projets d'alignement
  • Vue d'ensemble
  • Concepts cibles
  • Éditeur d'alignements
  • Suggestions
  • Évaluation
  • Export
  • Vue d'ensemble
  • Concepts
  • Cohortes
  • Données individuelles
  • Pipeline
  • Jeux de données
  • IDE
  • Applications web
  • Versioning
  • Vue d'ensemble
  • Onglets et widgets
  • Widgets intégrés
  • Widgets d'analyse
  • Cartes de contrôle (SPC)
  • Questionnaires et eCRF
  • Code R et Python
  • Filtres, paramètres et export
  • Vue d'ensemble
  • Mode présentation
  • Exporter un rapport
  • Agents
  • Fournisseurs de modèles
  • Skills
  • Créer du contenu via MCP
  • Import et export
  • Versioning git
  • Catalogue communautaire
  • Publier du contenu
  • Installation en production
  • Configuration
  • Authentification et permissions
  • Fichiers sur le serveur
  • Sauvegarde et restauration
  • Glossaire
  • Raccourcis clavier
  • Notes de version
Documentation Administration Fichiers sur le serveur

Fichiers sur le serveur

Pointer une base ou un dossier de travail vers des fichiers déjà posés sur le serveur, sans les téléverser — et délimiter ce que les utilisateurs peuvent atteindre.

En résumé

Un entrepôt de 40 Go n’a pas à transiter par le navigateur : posez-le sur le serveur, et Linkr le désigne par son chemin — rien n’est copié. Le rôle de l’administrateur est de délimiter ce que ce sélecteur peut atteindre, avec LINKR_FS_BROWSE_ROOTS. Par défaut, aucune limite n’est posée : c’est au déploiement de ne monter que ce que le serveur doit voir.

Client Non disponible en mode client-only — cette fonctionnalité nécessite un backend. Backend Disponible avec le backend FastAPI.

Le problème que cela résout

Tout point d’entrée « fichier » d’une application web suppose que le fichier est sur le poste de l’utilisateur. Pour une base DuckDB ou un dossier Parquet qu’un administrateur a déposé sur le serveur, cela oblige à un détour absurde : télécharger le fichier sur son poste pour le re-téléverser. Au-delà de la taille maximale d’envoi, c’est même impossible.

Désigner un chemin serveur supprime le détour. Rien ne bouge : Linkr lit les fichiers là où ils sont.

Trois origines de fichier, à ne pas confondre

Le téléversement reste la bonne réponse pour les petits fichiers d’auteur — une archive d’import, une image, un script. Le chemin serveur est fait pour les gros volumes de données. Il existe aussi, en mode navigateur, un accès direct aux dossiers de votre poste, sans copie : c’est l’équivalent côté client. Les deux répondent au même besoin — ne pas dupliquer des gigaoctets — chacun de son côté.

Où cela s’utilise

ÉcranCe qu’on désigne
Bases de données › AjouterUn fichier .duckdb ou .sqlite, ou un dossier de fichiers Parquet.
IDE › ConnexionsLa même chose, depuis l’environnement de code du projet.
Alignement de concepts › VocabulaireUn dossier de vocabulaire OHDSI — plusieurs gigaoctets, une dizaine de tables.
Projet › DossiersLes trois emplacements du projet : dossier de travail de l’IDE, sous-dossier de code, dossier des jeux de données.

Dans les dialogues d’ajout de base, une option Fichier serveur apparaît à côté du téléversement, avec pour indication « Cliquez pour parcourir le serveur ». S’ouvre alors un navigateur de fichiers côté serveur.

Ailleurs, le téléversement reste seul

Les autres points d’entrée — import d’archives, pièces jointes, fichiers de l’IDE — n’acceptent que le téléversement. C’est délibéré : ces fichiers viennent du poste de l’utilisateur, et ajouter un onglet « serveur » partout n’aurait rendu service nulle part.

Délimiter ce qui est atteignable

C’est la décision d’administration de cette page, et elle mérite d’être prise explicitement.

Par défaut, le sélecteur voit tout le système de fichiers

Sans configuration, LINKR_FS_BROWSE_ROOTS est vide et aucune racine n’est imposée : le sélecteur peut parcourir l’ensemble du système de fichiers visible par le serveur. C’est le modèle de RStudio Server — le confinement est la responsabilité du déploiement : on ne monte dans le conteneur que ce que le serveur doit voir.

Si votre serveur voit plus que cela, posez des racines.

La variable prend une liste de chemins absolus séparés par des virgules :

LINKR_FS_BROWSE_ROOTS="/data/warehouse,/data/vocabularies"

Le sélecteur ne sort alors plus de ces dossiers, ni de leurs sous-dossiers.

Ce qui est vérifié, et à quel moment

Trois protections se cumulent, et la dernière est la plus importante.

Un droit est exigé

Parcourir le serveur n’est pas ouvert à tous : désigner la source d’une base demande le droit de modifier les bases, et lier les dossiers d’un projet celui d’en modifier les paramètres.

Les liens symboliques sont résolus

Un chemin est résolu avant d’être comparé aux racines : un lien symbolique ne permet donc pas de sortir d’une racine autorisée.

La limite est revérifiée à l’enregistrement

La vérification faite dans le sélecteur n’est qu’un confort d’interface. Elle est refaite au moment où le chemin est enregistré — c’est ce qui empêche de contourner le sélecteur en envoyant directement un chemin arbitraire.

Ce que cela ne permet pas

  • Écrire n’importe où. Une base désignée par son chemin est ouverte en lecture seule, et ne peut pas servir de cible à un pipeline ETL.
  • Faire fuiter le chemin dans un export. Le chemin serveur est retiré des exports, comme les autres informations de connexion : une entité partagée ne révèle pas l’arborescence de votre serveur.
  • Lier les dossiers d’un projet sans l’IDE. Si l’exécution de code est désactivée sur l’instance, les liaisons de dossiers le sont aussi. Désigner une base, en revanche, reste possible : attacher des données en lecture n’est pas exécuter du code.

Un vocabulaire sur le serveur se lit en Parquet

Un dossier de vocabulaire désigné sur le serveur est lu au format Parquet. Un export OHDSI en CSV est refusé avec un message explicite plutôt qu’importé à vide — mieux vaut un refus lisible qu’un import silencieusement incomplet.

Les dossiers d’un projet

Un projet expose trois emplacements réglables séparément, décrits dans ses paramètres :

  • Le dossier de travail de l’IDE — ce que l’explorateur de fichiers affiche, et où démarrent les terminaux et les sessions R et Python.
  • Le sous-dossier de code — la partie empaquetée à l’export et au versioning. Réglé à part précisément pour qu’un export n’emporte jamais des jeux de données situés ailleurs dans le dossier de l’IDE.
  • Le dossier des jeux de données — accessible depuis les scripts par une variable d’environnement.

Les trois sont indépendants et propres à la machine : ils ne partent pas dans un export, et une autre installation utilisera les siens.

Conséquence pour vos utilisateurs

Comme ces dossiers sont repositionnables, un script ne doit jamais déduire un emplacement d’un autre — écrire ”../datasets” fonctionne jusqu’au jour où quelqu’un déplace un dossier. Les bibliothèques linkr fournissent les accesseurs à utiliser. Voir IDE.

Pour aller plus loin

  • Configuration — les autres variables d’environnement d’une instance.
  • Authentification et permissions — quels droits ouvrent ce sélecteur.
  • Bases de données — le point de vue de l’utilisateur sur les mêmes écrans.
  • IDE — les dossiers du projet, vus depuis le code.
PrécédentAuthentification et permissionsSuivantSauvegarde et restauration

Produit

  • Accueil
  • Démo

Ressources

  • Documentation
  • Ressources
  • Outils
  • Blog

Communauté

  • Code source Framagit
  • Code source Github

À propos

  • InterHop.org
  • Contact

2021–2026 InterHop — CC BY-NC-SA 4.0 (site) · GPLv3 (logiciel)