smart_ide/docs/services-functional-scope.md
Nicolas Cantu 0af507143a Add smart-ide-global API layer, SSO delegates proxy, .logs access logs
- New smart-ide-global-api (127.0.0.1:37149): internal bearer, upstream proxy, X-OIDC forward
- SSO gateway calls global API with GLOBAL_API_INTERNAL_TOKEN; logs to .logs/sso-gateway/
- Aggregated config example, docs, VERSION 0.0.2, claw proxy local URL hint
2026-04-03 23:08:52 +02:00

8.8 KiB
Raw Blame History

Périmètre fonctionnel des services — IDE, plateforme et backends applicatifs

Ce document précise ce que fait chaque brique (fonction métier / technique), qui lutilise (IDE, automation, backend dun produit), et ce qui est hors périmètre. Il complète services.md, API/README.md et ecosystem-architecture-and-sync.md.

1. Trois contextes de consommation

Contexte Acteur typique Objectif
IDE / poste développeur Lapce, Cursor, scripts locaux, extensions Édition, Git, agents, prévisualisation, découverte des endpoints, tâches documentaires ponctuelles
Automation / ia_dev ia_dev, cron, hooks, CI autorisée Déploiement, tickets, synchro RAG, clones sous racine contrôlée
Backend applicatif (projet développé) Serveur docv, API Enso, autres produits 4NK Fonctionnalités métier exposées aux utilisateurs finaux ; appels serveur à serveur vers la couche IA générique si le produit le prévoit

Règle de séparation : les micro-services sous services/ du monorepo smart_ide sont une plateforme technique (outillage, IA générique, orchestration). Les API REST métier (gestion documentaire, règles métier, persistance produit) vivent dans les dépôts applicatifs (ex. docv), pas dans smart_ide.

2. Services HTTP du monorepo smart_ide

Tous écoutent en principe sur 127.0.0.1 ; ports par défaut : API/README.md. Configuration agrégée : config/services.local.env.example.

Service Périmètre fonctionnel Rôle pour lIDE Rôle pour les backends applicatifs (projets)
smart_ide-orchestrator Résolution dintentions en cibles (Ollama, AnythingLLM, micro-services, gateway) sans logique LLM propre Point dentrée unique pour lUI « intentions » ; dryRun pour inspection Optionnel : même point dentrée si le back route par intention ; sinon appels directs aux services cibles pour moins dindirection
ia-dev-gateway Registre dagents ia_dev, lancement de runs, flux SSE (spécification) Palette / outils « lancer agent », timeline Possible pour scénarios « agent long » déclenchés depuis un back ; contrat : features/ia-dev-service.md
repos-devtools-server Clone / liste / chargement de dépôts Git sous une racine contrôlée (REPOS_DEVTOOLS_ROOT) Rafraîchir lespace de code sans quitter lIDE Rarement côté prod utilisateur ; plutôt outillage et environnements de build / sandbox
anythingllm-devtools Workspaces AnythingLLM, upload documentaire, orchestration avec repos-devtools, RAG initial (.4nkaiignore) Aligner workspace / dépôt depuis lIDE ou un script Possible pour pipelines « alimenter le RAG » automatisés ; secrets et URL AnythingLLM côté hôte
langextract-api Extraction structurée depuis texte (schéma, exemples, modèle configurable) Enrichir une feature « extraire des entités » dans lIDE Recommandé comme brique générique quand le back a besoin dextractions typées (voir docv-ai-integration.md)
agent-regex-search-api Recherche regex sur fichiers (ripgrep), périmètre REGEX_SEARCH_ROOT Recherche symbolique large dans le workspace Prudent : exposer seulement si le root est strictement borné ; plutôt poste dev ou job batch
claw-harness-api (proxy) Proxy HTTP vers un exécuteur claw-code amont Outillage modèles alternatifs en dev Optionnel si politique projet autorise ce proxy en interne
local-office Manipulation programmatique de fichiers Office (docx, etc.), clé X-API-Key Tests / génération de documents depuis lIDE Possible pour génération batch ou transformations Office côté serveur applicatif (hors UI ONLYOFFICE)
smart-ide-tools-bridge Registre des URLs locales ; jobs Carbonyl / PageIndex / Chandra (chemins validés sous SMART_IDE_MONOREPO_ROOT) Découverte des services ; lancer OCR / index / plan terminal depuis lIDE Non prévu pour le trafic utilisateur final : jobs longs, liés au poste / au monorepo ; les backs produit doivent préférer leurs propres pipelines (OCR, index) en prod si besoin
smart-ide-sso-gateway Validation JWT docv / Enso + proxy via smart-ide-global-api vers les micro-services Alternative au BFF maison pour un front ou un outil qui appelle déjà lIdP Possible quand le produit veut un seul point dentrée HTTP local vers la plateforme IA sous identité utilisateur OIDC ; les appels M2M peuvent rester directs vers un micro-service ou vers lAPI globale — features/sso-gateway-service.md, repo/service-smart-ide-global-api.md

3. Outils CLI et sous-modules (sans listener HTTP dédié)

Outil Périmètre fonctionnel IDE Backends applicatifs
Carbonyl (services/carbonyl/) Navigateur terminal (Chromium) pour ouvrir une URL Prévisualisation test (preview_urls + scripts) ; via bridge open-plan Pas dintégration serveur typique
PageIndex (services/pageindex/) Index arborescent « vectorless » sur PDF / Markdown Via tools-bridge POST /v1/pageindex/run Réutiliser le modèle (amont) dans un pipeline produit si besoin ; pas le bridge comme API publique
Chandra (services/chandra/) OCR structuré PDF / images → MD / HTML / JSON Via tools-bridge POST /v1/chandra/ocr ou CLI locale Même logique : moteur amont réutilisable ; le bridge reste outil poste

4. Services dhôte hors code services/ (souvent Docker / systemd)

Composant Périmètre IDE Backends applicatifs
Ollama Inférence LLM locale Chat / complétion via orchestrateur ou URL directe Appels HTTP /api/... depuis le back si réseau et politique le permettent
AnythingLLM RAG, workspaces, threads Consultation workspace, synchro via devtools / scripts API workspace / documents pour QA ou recherche documentaire métier (anythingllm-workspaces.md)
ONLYOFFICE Édition bureautique interactive Intégration front Embarqué côté produit pour lutilisateur final
docv (dépôt externe) Gestion documentaire métier, persistance, règles Enso Consommation comme produit Cest lAPI métier documentaire ; elle peut appeler orchestrateur / Ollama / AnythingLLM / langextract selon docv-ai-integration.md

5. API des projets développés (clarification)

  • Les backends des projets (ex. docv, API enso-front / BFF, services métier) exposent leurs propres routes (REST, GraphQL, etc.) vers le front et les clients.
  • Le monorepo smart_ide ne remplace pas ces API : il fournit des micro-services transverses et de la documentation (projects/<id>/conf.json, SSH, chemins données).
  • Intégration type docv → smart_ide : serveur à serveur, tokens dédiés, réseau interne ; orthogonal au SSO utilisateur (sso-docv-enso.md).

6. Rôles respectifs (rappel)

  • IDE : orchestrateur (intentions), tools-bridge (registre + jobs outils), devtools AnythingLLM, repos-devtools, regex search, ia-dev-gateway, smart-ide-global-api + smart-ide-sso-gateway (OIDC utilisateur → API globale → micro-services, si activé), accès directs Ollama / AnythingLLM selon lUX.
  • Backends applicatifs : consommer en priorité les services stables et documentés pour lIA générique (langextract, AnythingLLM, Ollama, éventuellement orchestrateur) ; éviter de dépendre du tools-bridge pour la charge utilisateur ; respecter périmètres fichiers (REGEX_SEARCH_ROOT, SSH / données déployées — remote-deployed-data-ssh.md).

Voir aussi