# v3 - Changements

## v3 – Changements majeurs (Breaking Changes)

OpenSearch 3.x introduit un ensemble important de changements susceptibles d’impacter la compatibilité de vos applications, de vos pipelines d’ingestion, de vos dashboards et de vos plugins.

Ces évolutions sont principalement liées à :

* la migration vers **Apache Lucene 10**,
* l’adoption obligatoire de **Java 21**,
* la suppression de mécanismes historiques (Security Manager, API obsolètes),
* des changements dans les **mappings**,
* des modifications dans **OpenSearch Dashboards**,
* et l’introduction renforcée des **Workspaces**.

***

### 🔗 Références officielles OpenSearch

* Breaking Changes : <https://docs.opensearch.org/latest/breaking-changes/>
* OpenSearch 3.0 – What to Expect : <https://opensearch.org/blog/opensearch-3-0-what-to-expect/>
* Release Notes 3.0.0 :\
  <https://github.com/opensearch-project/opensearch-build/blob/main/release-notes/opensearch-release-notes-3.0.0.md>

***

## 1. Migration vers Apache Lucene 10

**Référence :** <https://opensearch.org/blog/opensearch-3-0-what-to-expect/>

OpenSearch 3.0 adopte **Lucene 10**, ce qui entraîne :

* des changements internes dans la structure des index,
* des modifications dans la gestion des segments,
* la suppression de formats d’index plus anciens,
* des incompatibilités avec les index créés avec des versions Lucene trop anciennes.

**Impact :**\
Une **réindexation** peut être nécessaire selon votre version d’origine.

***

## 2. Passage obligatoire à Java 21 (JDK 21)

**Référence :** <https://opensearch.org/blog/opensearch-3-0-what-to-expect/>

OpenSearch 3.x nécessite désormais **Java 21**.

**Impact :**

* Les environnements d’exécution doivent être mis à jour.
* Les plugins internes ou tiers doivent être recompilés.
* Les scripts utilisant des API Java obsolètes doivent être adaptés.

***

## 3. Suppression du Java Security Manager

**Référence :** <https://opensearch.org/blog/opensearch-3-0-what-to-expect/>

Le **Security Manager Java**, déjà déprécié, est entièrement supprimé.

**Impact :**

* Les plugins utilisant ce mécanisme doivent être réécrits.
* Certains contrôles de sécurité doivent être revus.

***

## 4. Changements sur les mappings

**Référence :** <https://docs.opensearch.org/latest/breaking-changes/>

La version 3.x introduit plusieurs évolutions importantes concernant les **mappings**, notamment en raison de Lucene 10 et du nettoyage des API héritées.

***

### 4.1 Suppression complète des *mapping types*

**Référence :** <https://docs.opensearch.org/latest/breaking-changes/>

Les types (`_type`) sont désormais totalement supprimés.

**Impact :**

* Les pipelines d’ingestion doivent être configurés pour ne plus envoyer de type.
* Les requêtes utilisant `/index/type/_doc` échouent.

***

### 4.2 Suppression de variables de mapping obsolètes

**Référence :** <https://docs.opensearch.org/latest/breaking-changes/>

Les paramètres suivants ne sont plus supportés :

* `include_type_name`
* `numeric_detection`
* `date_detection` (partiellement modifié)
* `fielddata` sur certains types
* `norms` sur des types non textuels
* `index_options`
* restrictions sur `doc_values`

**Impact :**\
Les mappings contenant ces paramètres échoueront à la création ou à la mise à jour.

***

### 4.3 Changements sur les types de champs

**Référence :** <https://docs.opensearch.org/latest/breaking-changes/>

* `text` : restrictions sur les analyzers custom
* `keyword` : comportement plus strict de `ignore_above`
* `date` : formats personnalisés plus stricts
* `boolean` : valeurs non standard non acceptées
* `nested` : limitations renforcées

***

### 4.4 Changements sur les analyzers et tokenizers

**Référence :** <https://docs.opensearch.org/latest/breaking-changes/>

Avec Lucene 10 :

* certains analyzers changent de comportement,
* certains tokenizers sont supprimés ou renommés,
* les analyzers custom doivent être compatibles.

***

### 4.5 Restrictions sur les mises à jour de mapping

**Référence :** <https://docs.opensearch.org/latest/breaking-changes/>

* validations plus strictes,
* impossibilité d’ajouter certains champs dynamiques,
* templates à mettre à jour.

***

## 5. Changements sur les plugins

**Référence :** <https://opensearch.org/blog/opensearch-3-0-what-to-expect/>

La mise à jour du cœur OpenSearch entraîne :

* des modifications dans les API internes,
* des ajustements nécessaires pour les plugins tiers,
* des incompatibilités possibles avec les plugins développés pour OpenSearch 1.x ou 2.x.

**Impacts détaillés :**

* Les plugins doivent être recompilés avec les nouvelles dépendances.
* Les plugins utilisant des classes internes Lucene doivent être adaptés.
* Les plugins de sécurité, d’analyse ou de monitoring sont les plus impactés.
* Les plugins non maintenus ne fonctionneront plus.

***

## 6. Changements sur OpenSearch Dashboards (3.x)

**Référence :** <https://docs.opensearch.org/latest/breaking-changes/>

La mise à niveau vers Dashboards 3.x introduit des changements majeurs.

***

### 6.1 Mise à jour du runtime Node.js

**Référence :** <https://docs.opensearch.org/latest/breaking-changes/>

Dashboards 3.x nécessite **Node.js ≥ 14**.

***

### 6.2 Changements dans les API internes

**Référence :** <https://docs.opensearch.org/latest/breaking-changes/>

* API de visualisation plus strictes
* modifications des endpoints
* changements dans les saved objects

***

### 6.3 Évolutions de l’index `.opensearch_dashboards`

**Référence :** <https://docs.opensearch.org/latest/breaking-changes/>

* migration automatique
* nettoyage des champs obsolètes
* validations renforcées

***

### 6.4 Compatibilité des visualisations et plugins

**Référence :** <https://docs.opensearch.org/latest/breaking-changes/>

* plugins 1.x / 2.x doivent être mis à jour
* visualisations custom à tester
* champs supprimés → visualisations cassées

***

### 6.5 Renforcement de la sécurité

**Référence :** <https://docs.opensearch.org/latest/breaking-changes/>

* CSP plus strictes
* restrictions sur les scripts inline
* limitations sur les iframes externes

***

### 6.6 Changements dans les filtres et la recherche

**Référence :** <https://docs.opensearch.org/latest/breaking-changes/>

* filtres plus stricts
* erreurs explicites sur champs non mappés
* compatibilité DSL à vérifier

***

## 7. Migration vers les Workspaces

**Référence :** <https://docs.opensearch.org/latest/dashboards/workspaces/>

Les **Workspaces** remplacent progressivement les anciens *Tenantes*.

***

### 7.1 Ce que changent les Workspaces

**Référence :** <https://docs.opensearch.org/latest/dashboards/workspaces/>

* isolation plus stricte des dashboards et visualisations
* permissions granulaires
* association possible à plusieurs data sources
* séparation logique par équipe, projet ou environnement

***

### 7.2 Impacts pour les utilisateurs

**Référence :** <https://docs.opensearch.org/latest/dashboards/workspaces/>

* migration automatique vers un workspace par défaut
* réorganisation des dashboards partagés
* permissions RBAC à revoir
