# docv — intégration (hors monorepo) Ce répertoire ne contient **pas** le code du produit **docv** (gestion documentaire pour les projets Enso). Il documente le **contrat d’intégration** entre le monorepo **smart_ide** et le dépôt **docv**, attendu sous un chemin du type **`…/enso/docv`** sur la machine qui exécute docv (ex. poste local `/home/desk/code/enso/docv`). ## Documentation Enso (`enso-docs/`) Une **copie** de l’arborescence **`docs/`** du dépôt **enso** (source typique : `/home/ncantu/code/enso/docs`) est conservée sous **[`enso-docs/`](./enso-docs/)** pour consultation dans le monorepo **sans dépendre du clone enso** sur la machine. Point d’entrée : [`enso-docs/README.md`](./enso-docs/README.md). Après évolution majeure de la doc enso, **recopier** depuis le dépôt enso : ```bash rm -rf services/docv/enso-docs cp -a /chemin/vers/enso/docs services/docv/enso-docs ``` ## Rôle de docv **docv** apporte les **services de gestion documentaire** aux projets : stockage, workflows et API métier documents côté filière Enso. Les **données projet** ne sont pas dans le dépôt **smart_ide** : elles résident sous les clones applicatifs, selon la convention ci-dessous. ## Convention de chemins : `PROJECTS_CLONE_ROOT` et `data/` | Concept | Description | |---------|-------------| | **`PROJECTS_CLONE_ROOT`** | Répertoire absolu parent des dossiers **`/`** (un clone ou racine métier par identifiant de projet). En pratique, aligné sur **`../projects`** relatif à la racine du clone **smart_ide** (voir [projects/README.md](../../projects/README.md)). | | **Données documentaires docv** | Répertoire **`${PROJECTS_CLONE_ROOT}//data/`** — contenu synchronisé selon la politique du projet (Git, jobs, rsync, montage NFS, etc.). | Sur le **même hôte** que smart_ide, une valeur typique est : `PROJECTS_CLONE_ROOT=/home/…/code/projects` si `smart_ide` est dans `/home/…/code/smart_ide`. ## Côté dépôt docv (amont) Le code docv doit résoudre le chemin données via une variable d’environnement du type **`DOCV_PROJECTS_ROOT`** (équivalent à `PROJECTS_CLONE_ROOT`), puis : `cheminDonnées = join(DOCV_PROJECTS_ROOT, projectId, 'data')` sans chemins absolus figés dans le code. Détail et multi-hôte : [docs/features/docv-service-integration.md](../../docs/features/docv-service-integration.md). ## Consommateurs smart_ide (orchestrateur, front) Pour appeler docv par HTTP lorsqu’il est exposé (réseau interne ou TLS), utiliser des variables documentées dans [`.env.example`](./.env.example). Les valeurs réelles restent **hors dépôt** ([platform-target.md](../../docs/platform-target.md)). ## Liens - Gestion documentaire + données + multi-hôte : [docv-service-integration.md](../../docs/features/docv-service-integration.md) - API IA consommées par docv : [docv-ai-integration.md](../../docs/features/docv-ai-integration.md) - SSO OIDC : [sso-docv-enso.md](../../docs/features/sso-docv-enso.md)