Track services/docv integration contract (README, .env.example)

This commit is contained in:
Nicolas Cantu 2026-04-03 17:10:41 +02:00
parent 7f1cee487c
commit 1fcf057ce7
2 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,5 @@
# Example variable names for smart_ide components that call docv over HTTP.
# Do not commit real secrets. Set values in host-specific env or .secrets/<env>/ per platform-target.
#
# DOCV_BASE_URL=https://docv.example.internal
# DOCV_API_TOKEN=

36
services/docv/README.md Normal file
View File

@ -0,0 +1,36 @@
# 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 dinté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`).
## 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 **`<projet>/`** (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}/<projet>/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 denvironnement 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 lorsquil 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)