OSM Portal (v3) est un outil interne, brandé Orange Business, destiné à créer et utiliser des modèles de configuration CLI pour les offres OSM. Cette nouvelle version a vocation à remplacer les modules spécialisés existants, notamment Cisco OSM Gen et Ekinops BVPN OSM Gen. Leurs modèles, comme les nouveaux modèles créés par les utilisateurs, seront proposés dans une bibliothèque commune organisée par offre. OSM Portal (v3) s’inspire des générateurs de configurations réseau existants, tout en répondant aux exigences propres à Orange Business en matière de licence, de confidentialité et d’intégration au SI. Il vise à permettre aux utilisateurs de créer et faire évoluer leurs OSM de manière autonome, sans demander un développement pour chaque modèle.
  • HTML 47.1%
  • JavaScript 24.7%
  • Python 23.9%
  • CSS 3.1%
  • Shell 1.1%
  • Other 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
ClementBarreda 5367d6ad6e
All checks were successful
🚀 CI — Build & Publish / 🚀 CI (push) Successful in 2m42s
Garde le kit OUDS 1.5.0 verbatim
La release livre ses feuilles avec des fins de ligne mélangées ; sans règle,
Git les normalisait et les empreintes n'étaient plus celles de la release.
Le kit d'origine et sa copie servie passent en -text, comme le reste de la
charte vendorée.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:52:38 +02:00
.claude Initial commit 2026-10-06 06:58:18 +00:00
.forgejo Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
.ressources Garde le kit OUDS 1.5.0 verbatim 2026-10-19 17:52:38 +02:00
_projet Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
accounts Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
osm_portal Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
outils Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
templates Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
templates_catalog Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
.dockerignore Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
.env.example Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
.gitattributes Garde le kit OUDS 1.5.0 verbatim 2026-10-19 17:52:38 +02:00
.gitignore Initial commit 2026-10-06 06:58:18 +00:00
AGENTS.md Initial commit 2026-10-06 06:58:18 +00:00
CLAUDE.md Initial commit 2026-10-06 06:58:18 +00:00
conftest.py Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
docker-compose.yml Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
Dockerfile Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
manage.py Implémente le lot 1A brouillon sauvegardé 2026-10-09 13:19:50 +02:00
pyproject.toml Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
README.md Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
requirements.txt Termine l'OIDC (FEAT-29) et passe l'interface en OUDS Web 1.5.0 2026-10-19 17:51:59 +02:00
TUTORIEL.md Initial commit 2026-10-06 06:58:18 +00:00

OSM Portal v3 — portail interne de modèles de configuration CLI

Description

OSM Portal v3 est un outil interne Orange Business destiné à créer, maintenir et utiliser des modèles de configuration CLI pour les offres OSM. Il remplace progressivement des générateurs spécialisés codés en dur, comme Cisco OSM Gen, Ekinops BVPN OSM Gen et Ekinops OSM Gen, par une bibliothèque commune de modèles maintenables par des experts métier. Les techniciens de production ou de SAV recherchent un modèle publié, renseignent les valeurs client, prévisualisent la configuration générée, puis la copient ou la téléchargent. Le portail ne pousse pas les configurations sur les équipements et ne sauvegarde ni les valeurs saisies ni les configurations générées.

Schéma du projet

flowchart LR
    U[Techniciens, auteurs et administrateurs] --> N[Navigateur web]
    N --> A[Application Django]
    A --> V[Pages HTML server-side\nOUDS Web 1.5.0 + Solaris]
    A --> B[(PostgreSQL)]
    A --> G[Moteur de génération\nblocs CLI + variables]
    A --> S[Assets statiques vendorés]
    A --> L[Logs stdout / stderr]

Ce schéma simplifie l’architecture cible décrite dans _projet/design.md : une application Django monolithique, rendue côté serveur, avec PostgreSQL pour les données métier et des assets Orange vendorés dans le dépôt.

Statut du projet

Le projet est en phase de cadrage et de spécification fonctionnelle. La vision produit, le cadrage technique et les principes UX/UI sont documentés dans _projet/. La stack cible est définie, mais aucune application v3 exécutable n’est encore présente à la racine du dépôt.

Aucune fonctionnalité v3 n’est encore archivée comme livrée dans _projet/features/implemented/. Vingt-huit fonctionnalités sont actuellement spécifiées dans _projet/features/wip/ et constituent la roadmap de développement.

Le dépôt contient aussi un corpus v1 sous .ressources/v1/OSM Portal/. Ce corpus sert de référence fonctionnelle pour comprendre l’existant et amorcer la future bibliothèque de modèles, mais il ne constitue pas l’application v3.

Fonctionnalités

Aucune fonctionnalité v3 n’est actuellement livrée et archivée dans _projet/features/implemented/.

Les fonctionnalités encore en cours de spécification ou de développement sont listées dans la section Roadmap. Elles ne doivent pas être considérées comme disponibles tant qu’elles restent dans _projet/features/wip/.

Stack technique

Couche Choix cible Source
Langage principal Python 3.12+ _projet/design.md
Framework web Django 5.x LTS _projet/design.md
Rendu frontend Templates Django server-side rendered _projet/design.md
Interactions frontend JavaScript natif en modules, sans framework SPA _projet/design.md
Framework CSS OUDS Web 1.5.0, construction pure, servie par l'application (osm_portal/static/ouds/) ; classes contrôlées par outils/verifier_ouds.py _projet/design.md, _projet/ux-ui.md
Icônes Solaris Icons, sprite SVG servi par l'application _projet/design.md, _projet/ux-ui.md
Base de données PostgreSQL 16+ _projet/design.md
ORM et migrations Django ORM + migrations Django _projet/design.md
Authentification OpenID Connect auprès d'OMA Connect (Authlib, découverte, PKCE S256), SSO obligatoire, profils par le claim groups _projet/design.md, FEAT-29
Tests pytest + pytest-django _projet/design.md
Qualité code ruff _projet/design.md
Packaging Docker _projet/design.md
Serveur applicatif Gunicorn _projet/design.md
Fichiers statiques WhiteNoise ou service statique équivalent dans l’image applicative _projet/design.md
CI/CD Forgejo Actions, profil rapide sur dev, profil strict sur main .forgejo/workflows/README.md

Prérequis

Pour consulter et maintenir le dépôt aujourd’hui :

  • Git ;
  • un accès au dépôt Forgejo ;
  • un environnement capable de consulter des fichiers Markdown et HTML ;
  • Docker, utile pour la CI et requis lorsque l’image applicative v3 sera créée.

Pour l’application cible, les prérequis techniques prévus sont :

  • Python 3.12 ou supérieur ;
  • Django 5.x LTS ;
  • PostgreSQL 16 ou supérieur ;
  • Docker pour construire et exécuter l’image applicative ;
  • l’application déclarée chez OMA Connect (client confidentiel, porte d’entrée et rôles).

Les fichiers techniques applicatifs attendus (Dockerfile, manage.py, configuration Python, scripts de lancement, fichier .env.example, etc.) ne sont pas encore présents à la racine du dépôt.

Installation & Démarrage

Le projet v3 n’a pas encore d’application exécutable à installer ou démarrer.

Pour récupérer le dépôt et consulter le cadrage :

git clone https://git.bvcesctoulouse.com/OneXpertise/OSM-Portal.git
cd OSM-Portal
git switch dev

Documents principaux à lire :

  1. _projet/vision.md — vision produit, public cible, périmètre et lots ;
  2. _projet/design.md — stack cible, architecture, modèle de données et contraintes techniques ;
  3. _projet/ux-ui.md — charte Orange, parcours, accessibilité et états d’interface ;
  4. _projet/features/features_summary.md — index des fonctionnalités en cours ;
  5. .forgejo/workflows/README.md — configuration et fonctionnement des workflows Forgejo Actions ;
  6. .ressources/v1/OSM Portal/ — existant v1 utilisé comme référence fonctionnelle.

L’existant v1 peut être consulté localement en ouvrant .ressources/v1/OSM Portal/index.html dans un navigateur. Cette consultation sert à comprendre l’existant ; elle ne remplace pas l’application v3 à construire.

Configuration

Aucune configuration applicative v3 exécutable n’est encore fournie dans le dépôt.

Variables applicatives cibles à prévoir lors de l’implémentation :

Nom Rôle Valeur par défaut
DATABASE_URL Connexion PostgreSQL de l’application Django Non définie
DJANGO_SECRET_KEY Secret cryptographique Django Non définie
DJANGO_ALLOWED_HOSTS Hôtes autorisés pour l’application Non défini
DJANGO_DEBUG Activation du mode debug hors production False attendu en production
LOG_LEVEL Niveau de logs applicatifs À définir par environnement
OIDC_OP_ISSUER Issuer exact d'OMA Connect ; adresses et clés lues par découverte (/.well-known/openid-configuration) https://connect.infra.maquettes.orange-business.fr (composition)
OIDC_RP_CLIENT_ID Identifiant de l'application osmportal chez OMA Connect Non défini
OIDC_RP_CLIENT_SECRET / OIDC_RP_CLIENT_SECRET_FILE Secret client (de préférence par fichier) Non défini
OIDC_RP_REDIRECT_URI Adresse de retour exacte déclarée chez OMA Connect, sans barre finale https://osm-portal.infra.maquettes.orange-business.fr/oidc/callback (composition)
OIDC_AUTHOR_GROUPS, OIDC_ADMIN_GROUPS, OIDC_SUPERUSER_GROUPS Noms entiers des groupes de rôles (claim groups) ; sans rôle, lecteur GL-S-OSMPORTAL-AUTEUR-ALL, -ADMIN-ALL, -SUPERUSER-ALL (composition)
OSM_SESSION_DUREE_HEURES Durée absolue d'une session ; les rôles sont relus ensuite 8
DJANGO_SECRET_KEY_FILE Clé secrète Django lue dans un fichier, à la place de DJANGO_SECRET_KEY Non défini

Sans DJANGO_DEBUG, le portail refuse de démarrer si la clé secrète ou un réglage OIDC manque (manage.py check, migrate et le lancement de gunicorn le disent).

Configuration CI/CD connue :

Élément Rôle Documentation
PIPELINE_UPSTREAM_URL Synchronisation du pipeline depuis le template upstream .forgejo/workflows/README.md
IMAGE_NAME Nom de l’image Docker publiée par la CI .forgejo/workflows/README.md
REGISTRY Registre cible pour l’image Docker .forgejo/workflows/README.md
REGISTRY_USERNAME / REGISTRY_TOKEN Authentification au registre .forgejo/workflows/README.md
COSIGN_PRIVATE_KEY / COSIGN_PASSWORD Signature optionnelle des images sur main .forgejo/workflows/README.md

Roadmap

Fonctionnalités actuellement en cours dans _projet/features/wip/ :

Fonctionnalité Intitulé
FEAT-01 Créer un modèle brouillon
FEAT-02 Composer des blocs de configuration
FEAT-03 Déclarer des variables simples
FEAT-04 Renseigner les informations de classement d’un modèle
FEAT-05 Sauvegarder un brouillon
FEAT-06 Publier un modèle complet
FEAT-07 Consulter la bibliothèque des modèles publiés
FEAT-08 Générer une configuration depuis un modèle publié
FEAT-09 Prévisualiser et copier la configuration générée
FEAT-10 Suivre l’usage agrégé d’un modèle
FEAT-11 Insérer des variables avec assistance
FEAT-12 Ajouter une documentation d’usage au modèle
FEAT-13 Télécharger la configuration générée
FEAT-14 Définir des variables métier avancées
FEAT-15 Appliquer des règles réseau et calculs courants
FEAT-16 Conditionner les champs et les blocs générés
FEAT-17 Tester un brouillon avec un jeu d’essai temporaire
FEAT-18 Rechercher les modèles publiés par métadonnées
FEAT-19 Collaborer avec des co-auteurs sur un modèle
FEAT-20 Dupliquer un modèle publié en brouillon privé
FEAT-21 Prévenir les doublons et harmoniser offres et tags
FEAT-22 Organiser la zone auteur
FEAT-23 Consulter l’historique d’un modèle
FEAT-24 Comparer deux versions d’un modèle
FEAT-25 Restaurer une version en nouveau brouillon
FEAT-26 Archiver un modèle publié
FEAT-27 Supprimer un modèle selon les droits
FEAT-28 Administrer les modèles, offres et tags

Découpage produit prévu dans _projet/vision.md :

  1. Lot 1A — brouillon sauvegardé ;
  2. Lot 1B — publication et génération ;
  3. Lot 1C — confort auteur et restitution ;
  4. Lot 2 — qualité métier et sécurité de génération ;
  5. Lot 3 — bibliothèque et collaboration ;
  6. Lot 4 — historique, archivage et gouvernance ;
  7. Lot 5 — évolutions secondaires ou futures.

Hors premier périmètre v3 :

  • intégrations avancées au SI Orange Business et à ses API ;
  • commentaires, tickets, pull requests ou propositions de correction intégrés au portail ;
  • sauvegarde par défaut des configurations générées par les utilisateurs finaux ;
  • import récurrent de la v1 comme fonctionnalité produit.

Licence / Confidentialité

OSM Portal v3 est un projet interne Orange Business. Les contenus manipulés peuvent concerner des configurations réseau et doivent être traités conformément aux exigences internes de confidentialité, de licence et de sécurité.

Les ressources OUDS Web et Orange Boosted Bootstrap, logos Orange et icônes Solaris présentes sous .ressources/ sont réservées à un usage dans le cadre de projets Orange. Les secrets tels que PSK, mots de passe ou clés peuvent apparaître dans les configurations générées, mais ne doivent pas être sauvegardés par le portail, ni journalisés, ni historisés.