Nicolas Cantu bd604d28b8 refactor(deploy): use lecoffreio for nested secrets symlinks (not notary)
- deploy-conf-handling: symlink sites lecoffreio|enso|genealogie
- pousse: build message lists lecoffreio
- kogus docs: align mandatory secrets wording
2026-04-16 10:07:17 +02:00

63 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Documentation LeCoffre.io (index)
**Projet ia_dev** : **kogus** (identifiant outillage ; le site produit « LeCoffre » reste `product_code` / `sites.code` **lecoffreio** côté applicatif).
**Wiki** : https://git.4nkweb.com/4nk/lecoffre_ng/wiki
**Correspondance fichier → page wiki** : nom du fichier sans `.md`, `_``-`, title-case par segment (ex. `README.md` → Readme, `Operations.md` → Operations).
## Chemins secrets (monorepo et legacy)
Cette section évite de dupliquer les tableaux détaillés dans chaque page de ce dossier. Elle vise le clone **LeCoffre** (`deploy.repository_root` dans `projects/kogus/conf.json`). Elle ne décrit **pas** larborescence interne des jetons **ia_dev** sous **`projects/<id>/.secrets/...`** (ex. fichier **`ia_token`** par projet), qui reste propre au dépôt **ia_dev**.
| Rôle | Chemin canonique (scripts `deploy/scripts_v2`, `deploy-site.sh`) |
|------|------------------------------------------------------------------|
| Secrets par **ligne produit** (`SITE_CODE` / 2ᵉ argument de `deploy-site.sh`) | **`.secrets/<site>/<env>/`** avec **`<site> ∈ { lecoffreio, enso, genealogie }`** |
| **Kogus** (orchestrateur SSH, `connectDB` partagé, précontrôle `deploy-site.sh`) | **`.secrets/kogus/<env>/`** (`.env.<env>`, `.env.<env>.connectDB`) |
### Fichiers dinjection métier (matrices, actes, site, textes / tiers)
Ces fichiers **ne sont pas** dans **`projects/kogus/docs/`** (ni dans le wiki) : ils vivent **uniquement** sur le disque du clone **LeCoffre**, **par site et par environnement**, sous :
**`.secrets/<site>/<env>/`** avec **`<site> ∈ { lecoffreio, enso, genealogie }`** et **`<env> ∈ { test, pprod, prod }`**.
| Fichier (nom relatif, voir `<env>`) | Rôle |
|-------------------------------------|--------|
| **`role-permissions-matrix-<env>.json`** | Injection / export-import de la **matrice des droits** (`role_permissions_matrix`) — API **back-admin**, voir `docs/features/secrets-devai-kogus-sites-and-imports.md`. |
| **`office-deed-catalog-<env>.json`** | **Catalogue actes** — obligatoire pour **`deploy-site.sh`** (manifeste `site_env_required`). Export depuis la base : **back-admin** `POST /api/office-deed-catalog/export-to-secrets` ou lot **`POST /api/site-mandatory-artifacts/export-to-secrets`**. Chemin : **`.secrets/<site>/<env>/office-deed-catalog-<env>.json`** (ex. `.secrets/lecoffreio/test/office-deed-catalog-test.json`). Dossier disque **`lecoffreio`** (plus de segment **`notary`** côté **ia_dev** pour les symlinks secrets : voir **`ia_dev/deploy/lib/deploy-conf-handling.sh`**). Vérification : **GET** `/api/site-config/file-status?env=&site=`. |
| **`site-config-<env>.json`** | **Configuration de la ligne** `sites` (intégrations, hôtes, drapeaux) — export/import **back-admin**. |
| **`seed-site-texts-<env>.ts`** | **Textes i18n** publiés via `site_texts` ; **y compris les libellés et listes liés aux tiers** (clés `thirdParty.*`, `forms.thirdParty.*`, etc., selon `docs/Deployment.md` / seeds LeCoffre). |
Liste normative des noms : **`deploy/secrets-layout-manifest.json`** (bloc **`site_env_optional`**). Contrôle **SHA-256** inter-env (fichiers identiques) pour **enso** / **genealogie** : entrée **`inter_env_sha256_identical`** du même manifeste. Détail API (**`file-status`**, exports, garde-fous **lecoffreio**) : **`docs/features/secrets-devai-kogus-sites-and-imports.md`**.
### Wiki `projects/kogus/docs/*.md` vs dépôt Git **ia_dev**
Le **`.gitignore`** à la racine **ia_dev** contient **`**/docs/**`** : les fichiers **`.md`** sous **`projects/kogus/docs/`** sont en général **des copies de travail / wiki** et **ne sont pas tous suivis** par Git (seuls certains fichiers déjà indexés le restent, ex. ce **README**, **MIGRATION**, **Deployment**). Cela **naffecte pas** les fichiers dinjection ci-dessus : ceux-ci ne sont **jamais** attendus sous **`projects/kogus/docs/`** ; ils sont exclusivement sous **`.secrets/<site>/<env>/`** sur le monorepo LeCoffre.
**Documentation canonique (dépôt LeCoffre, branche suivie)** : `docs/features/multi-site-architecture.md`, `docs/features/secrets-multisite-kogus-and-sites.md`, `docs/features/secrets-devai-kogus-sites-and-imports.md`, `docs/features/multisite-data-policy-lecoffre-vs-ia-dev.md`, manifeste `deploy/secrets-layout-manifest.json`. Exemple dURL Gitea (adapter la branche) : `https://git.4nkweb.com/4nk/kogus/src/branch/test/docs/features/multi-site-architecture.md`.
**Legacy** : arbre **plat** **`.secrets/<env>/`** uniquement en phase de migration ; pont **symlinks** documenté avec **`LECOFFRE_LEGACY_FLAT_SECRETS_SYMLINKS=1`** côté orchestration **ia_dev** — état cible = répertoires **réels** par **`<site>`**.
Les pages **MIGRATION**, **DATABASE_COMPLETE**, **Frontend**, **IMPORT_V1_DEPENDENCIES** (lorsquelles existent sur disque) peuvent encore citer **`.secrets/<env>/`** pour lhistorique V1→V2 : en déploiement multisite aligné, utiliser **`SECRETS_LINE_DIR`** (typiquement **`.secrets/lecoffreio/<env>/`**) ou le **`<site>`** réel.
## Pages disponibles (docs/ racine)
| Fichier | Page wiki | Description |
|---------|-----------|-------------|
| README.md | Readme | Index et correspondance (ce fichier). |
| API.md | Api | APIs externes (IdNot, Annuaire, Ancrage, agent IA notaire), contrats et évolution. |
| Operations.md | Operations | Retours prod, parcours, vérifications, scripts danalyse, modalités danalyse. |
| Frontend.md | Frontend | Toasters, messages 403, sources de textes front, paramétrage, parcours UI. |
| Code-Standards.md | Code-Standards | Lint, refactors, rôles et droits, conventions. |
| Deployment.md | Deployment | Env, seeds, site-texts, vérifications boot, déploiement. |
| Architecture.md | Architecture | Vue densemble technique et intégrations. |
| compliance-annuaire-idnot-specs.md | Compliance-Annuaire-Idnot-Specs | Conformité API Annuaire V2 et ID.NOT (lookup, PP). |
Contenu des anciens dossiers `docs/features/` et `docs/fixKnowledge/` : ventilé dans les pages ci-dessus (pas de page dédiée FEATURES ni FIXKNOWLEDGE).
## Mise à jour du wiki
Depuis la racine du dépôt qui contient `docs/` : exécuter le script de migration (si disponible depuis ia_dev) pour pousser `docs/*.md` vers le wiki. Correspondance détaillée : `projects/ia_dev/docs/GIT_ISSUES_SCRIPTS_AGENTS.md` (section Migration docs/ → wiki). Ne pas committer `docs/` (hors versionnement).
## Dépôt applicatif `lecoffre_ng_test` (référence versionnée)
Le monorepo applicatif (`deploy.repository_root` dans `projects/kogus/conf.json`) versionne **`docs/`** à sa racine : index **`docs/README.md`**, fiches **`docs/features/`**. Ce répertoire **`projects/kogus/docs/`** sous ia_dev reste un miroir / notes dintégration agents ; en cas décart, le dépôt Git du code fait foi. Alignement **`VERSION`** / **`front-common/src/front/version.json`** / **`CHANGELOG.md`** : voir la même section *Numéro de version publié* dans le **`docs/README.md`** du monorepo.