Aller au contenu principal

Fondations

Sync-in repose sur des choix de conception qui privilégient la maîtrise du stockage, la cohérence des accès et la scalabilité opérationnelle.

  • Stockage lisible et réversible, avec des fichiers conservés dans leur système de fichiers d'origine.
  • Métadonnées à la demande, créées uniquement lorsqu'une fonctionnalité en a besoin.
  • Scalabilité opérationnelle, sans miroir complet obligatoire de l'arborescence en base.
  • Cohérence des accès, quel que soit le point d'entrée : interface web, WebDAV, synchronisation, éditeurs ou API.
  • Gouvernance collaborative, avec espaces, permissions granulaires, ancrage virtuel et partage imbriqué.
  • Interopérabilité native, grâce à WebDAV, aux clients de synchronisation et aux intégrations documentaires.
  • Socle TypeScript, pour renforcer la cohérence des interfaces et s'appuyer sur l'écosystème JavaScript.
  • Sécurité intégrée, fondée sur des règles homogènes de permissions, de verrouillage et de traçabilité.

Ces choix se traduisent par plusieurs mécanismes clés qui structurent l'architecture de Sync-in.

Comparatif de Conception

Pour situer ces choix face aux autres architectures EFSS open source, consultez le Comparatif de Conception.


Métadonnées ciblées et réconciliation du système de fichiers

Pour les métadonnées collaboratives, Sync-in n'indexe que les fichiers qui portent un état applicatif utile : commentaires, partages, ancrages, synchronisations, permissions, activités, etc. La base de données n'agit pas comme un miroir complet et obligatoire de l'arborescence : elle stocke l'état fonctionnel nécessaire à la plateforme. Cette approche garde la croissance de la base de données plus proche de l'usage collaboratif réel, réduit la surcharge d'indexation sur les très grandes arborescences et améliore la fluidité comme les performances globales de la plateforme.

Ce modèle renforce aussi la scalabilité : l'ajout de millions de fichiers n'entraîne pas mécaniquement la création de millions d'entrées applicatives. La charge de la base de données augmente principalement avec les fonctionnalités réellement utilisées, comme les partages, synchronisations, permissions ou activités.

Lorsqu'un fichier déjà associé à des métadonnées évolue sur le système de fichiers, Sync-in peut réconcilier l'état réel du stockage avec les métadonnées existantes. Cette logique préserve la cohérence des partages, ancrages, synchronisations, permissions et activités sans imposer un cache global de tous les fichiers.

L'indexation plein texte est un mécanisme distinct : elle concerne le contenu des documents, peut être activée ou désactivée, et n'a pas vocation à être enfermée dans la base de données. Elle peut s'appuyer sur des moteurs spécialisés plus adaptés à la recherche plein texte, comme Elasticsearch. Les résultats restent filtrés par les droits d'accès de l'utilisateur, y compris lorsqu'ils proviennent de l'index de contenu.


Réversibilité du stockage

Les fichiers ne sont pas absorbés ni stockés dans une base de données : ils restent accessibles directement sur le système de fichiers. Cette approche garantit à l'utilisateur la liberté de lire, sauvegarder, migrer ou traiter ses données avec d'autres outils, sans contrainte ni dépendance à Sync-in. Lorsque des changements interviennent sur le système de fichiers, Sync-in peut réconcilier l'état observé avec les métadonnées existantes afin de préserver la cohérence applicative.

L'état applicatif n'est pas inscrit dans les fichiers via des métadonnées de système de fichiers spécifiques au backend, ce qui rend les copies, restaurations et migrations moins dépendantes d'attributs de stockage cachés.

👉 Voir aussi : Comparatif de Conception


Ancrage virtuel sans duplication

Le mécanisme d'ancrage permet de lier un fichier ou dossier à un espace sans déplacer ni dupliquer le contenu.
L'élément est accessible comme s'il était physiquement présent (interface, WebDAV, API), tout en bénéficiant des règles de permission propres à l'espace.
Cette logique évite la redondance et offre une meilleure maîtrise de la diffusion des données.

Les fichiers ancrés restent soumis à un double contrôle : les droits de l'emplacement d'origine et ceux de l'espace collaboratif doivent autoriser l'action. Cette règle empêche qu'un espace élargisse indirectement les droits définis par le propriétaire du fichier.

Cette logique s'applique aussi aux emplacements externes : un administrateur peut rattacher un répertoire existant du serveur à un partage ou à un espace, sans l'importer dans un stockage applicatif spécifique.

👉 Voir : Concept des fichiers ancrés et Emplacement externe


Permissions granulaires et partage imbriqué

Sync-in introduit une gestion avancée des droits : un partage peut être redélégué tout en laissant au propriétaire la visibilité et le contrôle sur l'ensemble de la chaîne de partages.
Cette approche permet de gérer, ajuster ou révoquer les partages enfants en toute transparence.

Les partages en cascade restent donc gouvernables : propriétaires et managers peuvent suivre la diffusion, limiter les droits transmis et supprimer les accès enfants lorsqu'un contexte change.

👉 Voir : Gestion des partages dans les espaces collaboratifs et Gestion des partages enfants.


Gouvernance des espaces et visibilité opérationnelle

Les espaces collaboratifs définissent un rôle de manager, chargé de superviser les fichiers, membres, partages et permissions associés à l'espace.
La gouvernance inclut également la gestion des fichiers ancrés, avec des règles strictes garantissant que les droits originaux attachés au fichier restent inchangés, même lorsque l'ancre est administrée au niveau de l'espace.

Cette approche offre une gouvernance claire et prête à l'emploi pour les espaces collaboratifs, avec un modèle de responsabilité explicite.

Même lorsqu'un fichier est partagé ou ancré ailleurs, sa consommation reste rattachée à son emplacement d'origine. Les quotas conservent ainsi une responsabilité claire, indépendante des différents contextes depuis lesquels le fichier est consulté.

👉 Voir : Management des espaces collaboratifs


Verrouillage unifié

Le système de verrouillage unifié assure la cohérence transactionnelle et l'intégrité des fichiers sur l'ensemble de la plateforme, indépendamment du mode d'accès utilisé : interface web, WebDAV, clients de synchronisation, éditeurs collaboratifs ou API.

L'implémentation de ce système assure une gestion déterministe des accès concurrents, en sérialisant les opérations afin de prévenir toute corruption d'état et d'éliminer les conflits liés aux écritures simultanées.

👉 Voir : Gestion des verrous de fichiers


Synchronisation optimisée et intégrée

Sync-in propose un système de synchronisation de fichiers natif, optimisé et cohérent avec l'interface Web. Il s'appuie sur les API existantes pour garantir un comportement uniforme en matière de contrôle, sécurité et traçabilité.
Grâce à la gestion des actions de copie et déplacement la consommation réseau est réduite.
Cette fonctionnalité s'accompagne de nombreux mécanismes complémentaires, tels que la reprise automatique des transferts, la simulation des synchronisations, la protection contre la perte de données, filtrage par regexp...

La synchronisation privilégie ainsi la sécurité opérationnelle autant que la vitesse : simulation préalable, reprise des transferts, protection contre la perte de données et optimisation des déplacements limitent les erreurs comme les transferts inutiles.

👉 Voir : Synchronisation


Implémentation native du protocole WebDAV

Là où d'autres solutions reposent sur des bibliothèques externes (comme sabre-dav en PHP), Sync-in possède sa propre implémentation WebDAV conforme à la RFC 4918 et développée en TypeScript.
Ce choix technique garantit un support natif, des performances optimisées et une intégration homogène dans le modèle de sécurité global de la plateforme.

👉 Voir : WebDAV


Socle TypeScript

Sync-in s'appuie sur TypeScript comme langage commun au backend et au frontend. Ce choix apporte des interfaces explicites, typées et cohérentes entre les services métier, les API, WebDAV, la synchronisation, les clients et l'interface web.

Cette continuité entre les deux stacks limite les divergences de contrats, impose des interfaces partagées entre l'implémentation serveur et les usages côté client, et rend les évolutions plus sûres.

TypeScript conserve également les avantages de l'écosystème JavaScript/Node.js : un langage largement connu, un outillage mature, une base de contributeurs plus large et une intégration naturelle avec les technologies web modernes.


Séparation et Révocabilité des Accès

Sync-in sépare les types d'accès selon leur usage : utilisateurs internes, invités, liens invités, groupes, clients WebDAV, application de bureau et outils en ligne de commande. Cette séparation permet d'appliquer le bon niveau de droit à chaque contexte, sans exposer inutilement le compte principal.

Les accès WebDAV et en ligne de commande reposent sur des mots de passe d'application dédiés, révocables, expirables et traçables. Le client de synchronisation de l'application de bureau dispose de son propre mécanisme d'enregistrement : il demande une authentification initiale, renouvelée tous les six mois, et reste soumis aux mêmes principes de révocation, d'expiration et de traçabilité.

Pour les environnements sensibles, la visibilité des utilisateurs et groupes peut être restreinte. Cela réduit la découverte inutile des comptes et permet de construire des espaces de collaboration plus cloisonnés.

Sync-in peut également s'intégrer à des mécanismes d'authentification standards comme OIDC ou LDAP, et renforcer les comptes avec la MFA lorsque nécessaire. Ces options complètent le modèle d'accès sans remplacer les règles internes de permissions, de partage et de traçabilité.


Cohérence applicative

Les mécanismes centraux de Sync-in (permissions, verrouillage, WebDAV, synchronisation, partages, ancrages et activités) reposent sur les mêmes services métier. Cette organisation évite les comportements divergents selon le mode d'accès utilisé : interface web, WebDAV, client de synchronisation, éditeur collaboratif ou API.

Cette cohérence permet de faire évoluer la plateforme sans dupliquer les règles de sécurité ni multiplier les chemins d'exécution spécifiques à chaque protocole.