4.15.07.00 : notes de version d'Apigee Edge pour le cloud privé

Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.

Le mardi 8 septembre 2015, nous avons lancé une version majeure d'Apigee Edge pour un cloud privé.

Depuis la précédente version trimestrielle d'Edge pour le cloud privé (4.15.04.00), les versions suivantes ont été publiées et sont incluses dans cette version trimestrielle :

Vers quelles versions d'Edge pouvez-vous effectuer la mise à niveau ? 4.15.07.00

Selon votre version actuelle d'Edge, vous pouvez :

  • Mise à niveau directe vers la version 4.15.07.00
  • Mettez à niveau de manière incrémentielle. Cela signifie que vous devez passer de votre version actuelle à une autre version d'Edge, puis à la version 4.15.07.00.

Pour en savoir plus, consultez Quelles sont les versions d'Edge pour le cloud privé vers lesquelles vous pouvez migrer ? 4.15.07.00.

Avant de mettre à niveau à partir de la version 4.15.01.x ou d'une version antérieure

Avant de procéder à la mise à niveau, assurez-vous d'avoir mis à niveau Cassandra SSTable sur chaque nœud Cassandra :
  1. Vérifiez la version SSTable de Cassandra :
    1. Accédez au répertoire /<install-root>/apigee4/data/cassandra/data.
    2. Exécutez une commande de recherche,
      > find . -name *-ic-*
      Les résultats doivent renvoyer un ensemble de fichiers .db si vous exécutez Cassandra 1.2 SSTable.
    3. Exécutez cette commande find :
      > find . -name *-hf-*
      Les résultats doivent être vides, ce qui signifie qu'aucun fichier .db n'est au format hf. Si aucun fichier au format hf n'apparaît, vous avez terminé et vous pouvez passer à la version 4.15.07.00.

      Le format hf est destiné aux SSTables Cassandra 1.0. Si vous avez des fichiers *.db au format hf, vous devez mettre à niveau SSTable comme décrit dans le reste de cette procédure.
  2. Si vous trouvez des fichiers *.db au format hf, mettez à niveau SSTable en exécutant la commande suivante sur chaque nœud Cassandra jusqu'à ce que vous ayez mis à niveau tous les nœuds Cassandra :
    > /<install-root>/apigee4/share/apache-cassandra/bin/nodetool -h localhost upgradesstables -a
  3. Répétez l'étape 1 pour vérifier que tous les fichiers *.db sont au format ic pour la version 1.2 de Cassandra.
  4. Répétez les étapes 1 à 3 sur chaque nœud Cassandra de votre installation Edge.
  5. Passez à Edge 4.15.07.00.
  6. Après la mise à niveau vers la version 4.15.07.00, vérifiez que tous les fichiers *.db ont été mis à niveau vers le style sstable C* 2.0 :
    > cd /<install-root>/apigee4/data/cassandra/data
    > find . -name *-jb-*

    Cette commande doit renvoyer un ensemble de fichiers .db si vous exécutez Cassandra 2.0.

Nouvelles fonctionnalités et améliorations

Voici les nouvelles fonctionnalités et améliorations apportées à cette version.

Installation et mise à niveau

Mise à niveau et désinstallation sélectives des composants

Les scripts apigee-upgrade.sh et apigee-uninstall.sh vous permettent désormais de sélectionner les composants Edge à mettre à niveau ou à désinstaller. Auparavant, il mettait à niveau ou désinstallait tous les composants du nœud. (OPDK-1377, OPDK-1175)

Rollback de la mise à niveau

Si le script apigee-upgrade.sh échoue lors d'une mise à niveau, vous pouvez désormais utiliser le script apigee-rollback.sh pour annuler la mise à niveau. Après avoir résolu les éventuels problèmes de mise à niveau, vous pouvez réessayer. (OPDK-1275)

Options du script d'installation abrégé

Les scripts d'installation n'acceptent plus les options au format long, telles que "--help". Ils n'acceptent désormais que les options à une seule lettre, comme -h. (OPDK-1356)

Installation de SmartDocs

Lorsque vous installez SmartDocs avec le script setup-smartdocs.sh, vous êtes invité à saisir l'organisation, l'environnement et l'hôte virtuel, ce qui garantit que SmartDocs est installé à l'emplacement prévu. Auparavant, ces valeurs étaient codées en dur dans le script. (OPDK-1310)

Exécuter update-cass-pwd-in-config.sh sans invites

Le script update-cass-pwd-in-config.sh peut s'exécuter sans invite si vous définissez les variables d'environnement ENABLE_CASS_AUTH, CASS_USERNAME et CASS_PASSWORD. (OPDK-1309)

Plate-forme Edge

Vous trouverez ci-dessous les nouvelles fonctionnalités de la plate-forme Edge incluses dans cette version.

OpenJDK 1.7 compatible avec Edge pour le cloud privé

Cette version d'Edge est compatible avec Oracle JDK 1.7 et OpenJDK 7, mais plus avec JDK 1.6. (OPDK-1187)

OS compatibles

Apigee Edge pour le cloud privé a étendu la compatibilité de son système d'exploitation pour inclure Red Hat Enterprise Linux 6.6 et 7.0 (64 bits), CentOS 6.5, 6.6 et 7.0 (64 bits), et Oracle Linux 6.5.

Cassandra 2.0.15 inclus dans OPDK 15.07

Cette version installe Cassandra 2.0.15. Si vous effectuez une mise à niveau à partir d'une version précédente, votre version de Cassandra sera mise à jour. (OPDK-1197)

Compatibilité avec SHA2 pour le hachage des jetons OAuth

Pour mieux protéger les jetons OAuth en cas de violation de la sécurité de la base de données, Edge est compatible avec les algorithmes SHA2 pour le hachage des jetons OAuth (en plus de SHA1). Grâce aux nouvelles propriétés au niveau de l'organisation, vous pouvez activer et configurer le hachage pour les nouveaux jetons, tout en conservant l'ancien hachage pour les jetons qui existaient avant cette nouvelle fonctionnalité. Auparavant, dans Edge pour Private Cloud, une propriété appelée hash.oauth.tokens.enabled dans le fichier keymanagement.properties (sur votre serveur de gestion et vos processeurs de messages) permettait le hachage SHA1 automatique des jetons OAuth. Cette propriété est désormais obsolète.

Si vous avez précédemment utilisé la propriété hash.oauth.tokens.enabled pour activer le hachage SHA1, le script de mise à niveau de cette version génère automatiquement les nouvelles propriétés au niveau de l'organisation pour vous. Pour vérifier la mise à niveau, effectuez une requête GET en tant qu'administrateur système avec cette API : https://{host}:{port}/v1/o/{your_org}.

  • Pour savoir comment activer le hachage des jetons dans votre organisation à l'aide des nouvelles propriétés, consultez la section "Hacher les jetons dans la base de données" de la rubrique Demander des jetons d'accès.
  • Pour en savoir plus sur le hachage groupé des jetons existants, consultez le Guide des opérations Edge pour le cloud privé. (APIRT-1389)

Structure de répertoire simple pour les fichiers journaux

Vous pouvez configurer Edge pour stocker les fichiers journaux dans une structure de répertoire à plat en définissant une nouvelle propriété enable.flat.directory.structure sur "true" dans le fichier message-logging.properties. Pour en savoir plus, consultez la Règle MessageLogging. (APIRT-1394)

Performances du cache d'environnement

Pour une meilleure gestion et utilisation du cache en mémoire, les paramètres "Nombre maximal d'éléments en mémoire" des ressources de cache d'environnement ont été abandonnés. Le nombre total d'éléments présents dans toutes les ressources de cache (y compris le cache par défaut) dépend de la mémoire totale allouée au cache. Par défaut, la mémoire totale allouée à la mise en cache en mémoire sur un processeur de messages donné correspond à 40 % de la mémoire totale disponible, déterminée par les paramètres de propriété du cache dans le fichier cache.properties de votre processeur de messages. Les éléments ne sont supprimés du cache en mémoire que lorsque la mémoire cache est insuffisante ou que les éléments expirent.

Pour revenir à l'ancien comportement d'utilisation de la propriété "Nombre maximal d'éléments en mémoire" pour la gestion du cache, définissez la propriété overrideMaxElementsInCacheResource=false dans le fichier cache.properties. (APIRT-1140)


Services d'API

Vous trouverez ci-dessous les nouvelles fonctionnalités des services d'API incluses dans cette version.

Nouvel éditeur de proxys par défaut

Le nouvel éditeur de proxy d'API est activé par défaut dans l'interface utilisateur de gestion. Le nouvel éditeur inclut de nombreuses améliorations en termes d'usabilité, y compris des vues plus complètes des flux conditionnels et des points de terminaison sur la page "Présentation", toute la configuration sur la page "Développer", l'ajout plus intuitif de flux conditionnels, de points de terminaison et de règles, des vues XML plus complètes plutôt que de petits extraits, une recherche qui explore les noms de fichiers et le texte, et plus encore. (MGMT-2279)

Nouvelle règle de suppression des informations OAuth v2.0

Une nouvelle règle "Supprimer les informations OAuth v2.0" vous permet de supprimer les jetons d'accès et les codes d'autorisation OAuth v2. Cette règle remplace la fonctionnalité précédemment fournie par l'API de gestion. Pour en savoir plus, consultez Règle de suppression des informations OAuthV2. (MGMT-2257)

Nouvelle règle de suppression des informations OAuth v1.0

Une nouvelle règle "Supprimer les informations OAuth v1.0" vous permet de supprimer les jetons de requête, les jetons d'accès et les codes de validation OAuth v1.0. Cette règle remplace la fonctionnalité précédemment fournie par l'API de gestion. Pour en savoir plus, consultez Supprimer la règle d'informations OAuth V1. (APIRT-1351)

Règle de contrôle des accès

La règle de contrôle d'accès a été améliorée pour permettre une évaluation plus précise des adresses IP pour les listes d'autorisation et de refus lorsque les adresses IP sont contenues dans l'en-tête HTTP X-FORWARDED-FOR.

Si la vérification de plusieurs adresses IP est activée dans l'en-tête (contactez l'assistance pour définir feature.enableMultipleXForwardCheckForACL), un nouvel élément <ValidateBasedOn> dans la règle vous permet de vérifier la première adresse IP, la dernière adresse IP ou toutes les adresses IP de l'en-tête. Pour en savoir plus, consultez la Règle de contrôle des accès.

Nouvelles entités dans la règle AccessEntity

La règle "Entité d'accès" permet d'accéder aux nouvelles entités suivantes : consumerkey-scopes, authorizationcode, requesttoken et verifier. Pour en savoir plus, consultez la section Règle AccessEntity.

Règle StatisticsCollector : conversion automatique du nom des statistiques en minuscules

Lorsque vous créez une collecte de données analytiques personnalisée dans l'éditeur de proxy d'API (page "Développer" > Outils > Collecte de données analytiques personnalisée), le nom de la variable (statistique) du collecteur doit être en minuscules. Si vous saisissez le nom en majuscules, l'outil le convertit automatiquement en minuscules dans la règle StatisticsCollector. (MGMT-740)

Suppression de la trace classique dans l'éditeur de proxy d'API

La dernière version de la fonctionnalité Trace dans l'éditeur de proxy d'API est passée de la version bêta à la disponibilité générale. L'accès à la "trace classique" via le lien "Accéder à la version classique de Trace" n'est plus disponible.

Accès à la communauté Apigee depuis le menu d'aide de l'UI de gestion

Vous pouvez accéder à la communauté Apigee depuis le menu d'aide de l'interface utilisateur de gestion.

Messages d'erreur dans l'interface utilisateur de gestion

Voici les améliorations apportées aux messages d'erreur dans l'UI de gestion :

  • L'interface utilisateur de gestion permet de regrouper et d'afficher tous les messages d'erreur de l'interface utilisateur pour l'ensemble de la session de connexion, sauf si vous les avez fermés. Avec cette mise à jour, les messages d'erreur sont effacés automatiquement lorsque vous quittez la page sur laquelle ils se sont produits. (MGMT-2254)
  • L'UI de gestion ne supprime plus les messages d'erreur en double. (MGMT-2242)

Améliorations des performances et des erreurs de l'UI

Des améliorations générales ont été apportées à différentes zones de l'interface utilisateur de gestion, y compris aux performances d'affichage des pages et au nettoyage des messages d'erreur.

Sur la page "Utilisateurs de l'organisation" de l'UI de gestion (Admin > Utilisateurs de l'organisation), les noms de rôles sont désormais des liens hypertextes qui vous permettent d'accéder rapidement aux pages de rôles. (MGMT-1055)

Nouvelles variables cibles dans le flux de messages

De nouvelles variables dans les flux de messages fournissent des informations plus complètes sur les URL pour les points de terminaison cibles et les serveurs cibles :

  • TargetEndpoint : request.url remplace target.basepath.with.query.
  • Remplacement de targetserver.name par loadbalancing.targetserver pour TargetServer. De plus, target.basepath n'est renseigné que lorsque l'élément <Path> est utilisé dans l'élément <LoadBalancer> HTTPTargetConnection de TargetEndpoint.

Compatibilité avec l'indication du nom du serveur (SNI)

Edge est compatible avec l'utilisation de l'indication du nom du serveur en direction du backend (du processeur de messages aux points de terminaison cibles). Si vous souhaitez utiliser SNI, contactez l'assistance Apigee Edge.

Java 1.7 est requis.

Avec SNI, qui est une extension de TLS/SSL, plusieurs cibles HTTPS peuvent être diffusées à partir de la même adresse IP et du même port sans que toutes ces cibles aient besoin d'utiliser le même certificat.

Aucune configuration spécifique à Edge n'est requise. Si votre environnement est configuré pour le SNI en aval (le cloud Edge l'est par défaut), Edge le prend en charge.

Edge extrait automatiquement le nom d'hôte de l'URL de la requête et l'ajoute à la requête de handshake SSL. Par exemple, si l'hôte cible est https://example.com/request/path, Edge ajoute l'extension server_name comme indiqué ci-dessous :

Pour en savoir plus sur SNI, consultez http://en.wikipedia.org/wiki/Server_Name_Indication.

"Algorithme de signature" dans les détails des certificats SSL

Un champ "Algorithme de signature" a été ajouté aux détails du certificat SSL. Il est visible dans l'interface utilisateur de gestion (Admin > Certificats SSL) et dans l'API de gestion (Obtenir les détails du certificat à partir d'un Keystore ou d'un Truststore). Le champ affiche "sha1WithRSAEncryption" ou "sha256WithRSAEncryption", selon le type d'algorithme de hachage utilisé pour générer le certificat.

Afficher les certificats SSL qui expirent bientôt

La page "Certificats SSL" de l'interface utilisateur de gestion (Admin > Certificats SSL) indique quand les certificats SSL expirent dans 10, 15, 30 ou 90 jours, selon votre sélection dans le nouveau champ déroulant d'expiration.

Configuration des erreurs de protection contre les menaces

Par défaut, Edge génère un code d'état HTTP 500 indiquant une erreur interne du serveur et une erreur ExecutionFailed si un message ne respecte pas une règle de protection contre les menaces JSON ou XML. Vous pouvez modifier ce comportement en utilisant une nouvelle propriété au niveau de l'organisation. Lorsque vous définissez la propriété d'organisation features.isPolicyHttpStatusEnabled sur "true", le comportement suivant se produit :

  • Requête : avec une règle de protection contre les menaces associée à un flux de requêtes, les messages non valides renvoient un code d'état 400, ainsi qu'un message d'erreur de règle correspondant.
  • Réponse : avec une règle de protection contre les menaces associée à un flux de réponses, les messages non valides renvoient toujours un code d'état 500, et l'un des messages d'erreur de règle correspondants est généré (plutôt que ExecutionFailed simplement).

Les clients Cloud doivent contacter l'assistance Apigee Edge pour définir la propriété d'organisation. Cette fonctionnalité sera disponible pour les clients Edge Private Cloud lors de la prochaine version trimestrielle de Private Cloud.

Schémas mis à jour pour les points de terminaison, les proxys et d'autres entités

Les schémas de référence ont été mis à jour pour les entités non liées aux règles, telles que TargetEndpoint, ProxyEndpoint, APIProxy et bien d'autres. Consultez https://github.com/apigee/api-platform-samples/tree/master/schemas. (APIRT-1249)


Services pour les développeurs

Vous trouverez ci-dessous les nouvelles fonctionnalités des services pour les développeurs incluses dans cette version.

Disponibilité générale de SmartDocs

SmartDocs passe de la version bêta à la disponibilité générale. Voici les mises à jour et les nouvelles fonctionnalités :

  • Prise en charge de Swagger 2.0, y compris l'importation par fichier ou URL, et prise en charge des objets de sécurité personnalisés.
  • Améliorations de la conception visuelle dans les modèles qui génèrent SmartDocs.
  • Améliorations de l'usabilité et du workflow dans le portail des développeurs, disponibles dans le menu Contenu > SmartDocs de Drupal.
  • L'authentification "Jeton personnalisé" s'appelle désormais "Clé API".
  • Objets "security" d'authentification définis au niveau de la révision.
  • Configuration de l'authentification du client au niveau du modèle. Les nouvelles révisions ne réinitialisent plus les identifiants client SmartDocs préconfigurés.

Pour en savoir plus sur les fonctionnalités, consultez cet article de blog.

Pour la documentation SmartDocs, consultez Utiliser SmartDocs pour documenter les API.

Nom de l'application du développeur affiché dans l'interface utilisateur de gestion

Dans Edge, les applications pour les développeurs ont un nom interne qui ne change pas et un nom à afficher que vous pouvez modifier. Sur la page d'une application de développeur dans l'interface utilisateur de gestion (Publier > Applications de développeur > nom de l'application), le "Nom" interne de l'application est affiché avec le "Nom à afficher". Il est ainsi plus facile d'identifier visuellement les applications par leur nom interne pour le dépannage et la gestion des API.


Services d'analyse

Vous trouverez ci-dessous les nouvelles fonctionnalités des services Analytics incluses dans cette version.

Délai de conservation des données

Lorsque vous générez des rapports d'analyse avec l'interface utilisateur ou l'API de gestion, les données de plus de six mois à compter de la date du jour ne sont pas accessibles par défaut. Si vous souhaitez accéder à des données de plus de six mois, contactez l'assistance Apigee Edge.

Suppression de la version classique des rapports personnalisés de l'interface utilisateur de gestion

La version classique facultative des rapports d'analyse personnalisés n'est plus disponible dans l'UI de gestion.

Performances du widget "Engagement des développeurs"

Le widget d'entonnoir du tableau de bord principal des données analytiques (section "Engagement des développeurs") a été amélioré pour offrir de meilleures performances.


Monétisation

Voici les nouvelles fonctionnalités de monétisation incluses dans cette version.

Notifications par e-mail concernant les plans tarifaires

Un nouveau type de notification par e-mail sur les plans tarifaires vous permet d'informer les développeurs lorsqu'ils atteignent une certaine limite de transactions ou de montant dans les plans tarifaires groupés ou à bandes de volume qu'ils ont achetés. Pour en savoir plus, consultez Configurer des notifications à l'aide de modèles de notification.

Synchronisation des périodes de frais récurrents et de base d'agrégation

Dans un forfait, deux périodes différentes pouvaient être en vigueur :

  • Période de frais récurrents, configurée dans l'onglet "Frais" d'un plan tarifaire, qui détermine la date à laquelle les développeurs sont facturés pour des frais récurrents.
  • Période de base de l'agrégation, définie sur la fiche tarifaire des forfaits à bandes de volume ou groupés, qui déterminait quand l'utilisation des forfaits était réinitialisée pour les développeurs.

Ces deux périodes sont désormais synchronisées. Lorsqu'un forfait inclut à la fois des frais récurrents non nuls et une grille tarifaire par tranche de volume ou groupée, la période de frais récurrents est utilisée pour les deux. Par exemple, s'il existe des frais récurrents mensuels, les packs de tarifs sont également réinitialisés tous les mois (par défaut, au début du mois).

S'il n'existe pas de frais récurrents, les forfaits sont réinitialisés en fonction de la base d'agrégation définie dans la grille tarifaire. Par exemple, si un développeur commence à utiliser un tarif le 19 du mois et que la base d'agrégation est mensuelle, l'utilisation du forfait est réinitialisée un mois après le 19.

La base d'agrégation est obsolète et sera supprimée de la monétisation dans une prochaine version. Pour en savoir plus, consultez Spécifier les détails du forfait de la grille tarifaire.

Attributs personnalisés dans les rapports récapitulatifs sur les revenus

Les règles d'enregistrement des transactions vous permettent de capturer des données d'attributs personnalisés à partir des transactions (facultatif). Vous pouvez désormais inclure ces attributs de transaction personnalisés dans les rapports récapitulatifs sur les revenus. En ajoutant une propriété MINT.SUMMARY_CUSTOM_ATTRIBUTES à votre organisation, vous pouvez indiquer les attributs personnalisés à ajouter aux tables de base de données pour les utiliser dans les rapports.

Les clients Apigee Edge pour le cloud privé peuvent définir l'indicateur avec l'appel d'API suivant et les identifiants d'administrateur système.

curl -u email:password -X PUT -H "Content-type:application/xml" http://host:8080/v1/o/myorg -d \
"<Organization type="trial" name="MyOrganization">
    <Properties>
        <Property name="features.isMonetizationEnabled">true</Property>
        <Property name="MINT.SUMMARY_CUSTOM_ATTRIBUTES">[&quot;my_attribute_1&quot;,&quot;my_attribute_2&quot;]</Property>
        <Property name="features.topLevelDevelopersAreCompanies">false</Property>
    </Properties>
</Organization>"

Notez que le tableau d'attributs personnalisés dans l'appel d'API est encodé au format URL.


Processus de mise à niveau de SmartDocs

Si vous avez déjà utilisé SmartDocs pendant la période bêta, les nouvelles fonctionnalités de la version en disponibilité générale nécessitent que vous mettiez à niveau SmartDocs dans votre portail de développeur.

Toutes les pages SmartDocs déjà publiées dans votre portail des développeurs continueront de fonctionner, mais vous devez suivre la procédure de mise à jour avant de modifier ou de publier des modifications sur des pages existantes ou nouvelles.

N'oubliez pas que, même si vous pouvez afficher et publier des documents SmartDocs dans votre portail des développeurs, ils sont générés à partir du modèle d'API qui se trouve dans les services de gestion d'API Edge d'Apigee. Toutes les modifications que vous apportez à un modèle d'API dans Edge sont les mêmes dans tous vos environnements Pantheon (comme les développeurs dans les environnements Pantheon).

Passer de la version bêta à la version disponible pour tous de SmartDocs

  1. Mettez à jour et testez la version 15.05.27 dans vos environnements dev ou test sur Pantheon.
  2. Créez un modèle pour remplacer tout modèle d'API existant que vous avez utilisé.
    • Si vous avez importé des documents Swagger ou WADL, importez-les à nouveau dans une nouvelle révision.
    • Si vous avez géré votre modèle d'API via le module SmartDocs, exportez-le au format JSON SmartDocs et importez-le dans votre nouveau modèle à l'aide d'une pièce jointe.
  3. Définissez les propriétés de sécurité de la révision de votre modèle. Sur la page Contenu > SmartDocs > modèle, sélectionnez Paramètres de sécurité.
  4. Vérifiez toute authentification préconfigurée sur la page des paramètres du modèle (Contenu > SmartDocs) en cliquant sur Paramètres dans la colonne "Opérations".
  5. Mettez à jour tous les modèles personnalisés pour utiliser la version 6 des composants CSS et JS, et apportez les modifications nécessaires pour refléter les nouveaux noms d'objets, tels que authSchemes et apiSchema. Pour savoir comment mettre à jour les modèles SmartDocs, consultez Utiliser SmartDocs pour documenter les API.
  6. Rendez à nouveau votre révision de modèle et publiez-la.
  7. Après avoir validé la nouvelle documentation, mettez à jour votre portail de production vers la version 15.05.27.

Si vous êtes un client Edge Enterprise et que vous avez des questions ou des préoccupations concernant le processus de mise à niveau, veuillez envoyer un e-mail à marsh@apigee.com et cnovak@apigee.com. Sinon, veuillez utiliser la communauté Apigee pour obtenir la meilleure réponse.


Modifications et améliorations futures des fonctionnalités

Cette section présente un aperçu des modifications et améliorations prévues pour les fonctionnalités :

Modification du comportement de la règle de réponse du cache

Dans une prochaine version (à déterminer), le comportement par défaut de l'élément <ExcludeErrorResponse> de la règle ResponseCache changera.

Comportement actuel : l'élément <ExcludeErrorResponse> de la règle de mise en cache des réponses est défini sur "false" par défaut. Cela signifie que, par défaut, les réponses avec n'importe quel code d'état HTTP possible (y compris 3xx) sont mises en cache par la règle "Cache de réponse".

Comportement futur : l'élément <ExcludeErrorResponse> de la règle de mise en cache des réponses sera défini sur "true" par défaut. Cela signifie que, par défaut, seules les réponses avec les codes d'état HTTP de 200 à 205 seront mises en cache. Pour remplacer ce comportement et mettre en cache les réponses pour tous les codes d'état, vous devrez définir explicitement l'élément <ExcludeErrorResponse> sur "true".

Solution de contournement actuelle  : pour Private Cloud 4.15.07.00 et les versions antérieures, si vous souhaitez mettre en cache les réponses uniquement avec les codes d'état 200 à 205, vous devez définir explicitement l'élément <ExcludeErrorResponse> sur "true".


Bugs résolus

Les bugs suivants sont résolus dans cette version.

ID du problème Description
OPDK-1521 Problème de chiffrement du mot de passe
OPDK-1201 Impossible de restaurer les données de l'UI
OPDK-1112 La règle personnalisée relative aux mots de passe LDAP ne s'applique pas à l'utilisateur administrateur Apigee
OPDK-1097 Exception d'espace de clés lors de la mise à niveau d'OPDK
OPDK-1068 Possibilité de modifier le mot de passe administrateur en cas d'échec de l'installation
OPDK-1053 Zookeeper s'exécute en tant que root
OPDK-967 Lorsque vous configurez OpenLDAP pour qu'il démarre automatiquement à l'aide de set-autostart.sh, all-status.sh indique qu'il est inactif
OPDK-905 Smartdocs prod already registered in group axgroup001
OPDK-899 Erreur lors de l'intégration
OPDK-847 L'utilisateur créé lors de l'intégration ne reçoit pas d'e-mail pour réinitialiser son mot de passe
OPDK-817 Les scripts init.d génèrent une erreur
OPDK-815 Le script ax-purge.sh nécessite la suppression des tables d'échantillonnage
MGMT-2246 La page de création de rapports personnalisés ne s'affiche pas correctement dans l'UI de gestion
MGMT-2235 Pour les certificats SSL qui expirent, le temps relatif d'expiration peut être arrondi de manière déroutante.
Pour les certificats SSL qui expirent, le temps relatif de la date d'expiration est toujours indiqué en jours au lieu d'être arrondi au mois supérieur, lorsque le certificat expire dans 90 jours ou moins.
MGMT-2193 Spinner de chargement lors de la modification d'une API
MGMT-2173 L'interface utilisateur Trace n'autorise pas les URL légales
L'interface utilisateur Trace vous permet désormais d'envoyer des requêtes avec des valeurs de paramètres de requête qui contiennent des paramètres de requête imbriqués.
MGMT-2162 Problème de compilation JavaScript
MGMT-2124 Les autorisations du rôle client sont réinitialisées lorsque vous les enregistrez dans l'UI.
MGMT-2114 Une adresse IP Syslog non valide dans la règle MessageLogging doit générer une erreur appropriée lors du déploiement.
MGMT-2067 Trace : Si la révision du proxy d'API est déployée dans deux environnements, la sélection de la révision et de l'environnement ne fonctionne pas correctement
MGMT-2061 La fonctionnalité "Mot de passe oublié" ne doit envoyer d'e-mails qu'aux utilisateurs enregistrés
Le lien "Mot de passe oublié ?" sur la page de connexion de l'UI de gestion n'envoie d'e-mails qu'aux utilisateurs Apigee enregistrés.
MGMT-2048 Un utilisateur disposant d'un rôle personnalisé qui limite les autorisations de déploiement à un seul environnement peut déployer dans d'autres environnements.
MGMT-2041 Supprimer l'élément FaultRules du modèle de pièce jointe par défaut
L'élément FaultRules, qui n'est pas utilisé dans les règles ni dans les étapes du proxy d'API, n'est plus ajouté automatiquement lorsque vous créez des proxys d'API ou ajoutez des règles.
MGMT-2034 L'opération de récupération du fichier WSDL a échoué : "Erreur de récupération du fichier WSDL : erreur lors du traitement du fichier WSDL."
MGMT-1986 Erreur d'interface utilisateur lors de l'ajout d'un développeur
MGMT-1983 L'API Get an OAuth 2.0 authorization code renvoie un état incorrect
MGMT-1962 Erreur de connexion à l'interface utilisateur de gestion avec un mot de passe fort
La connexion à l'interface utilisateur avec certains caractères spéciaux, tels que le signe pourcentage, n'échoue plus.
MGMT-1947 Rôles peu intuitifs dans l'interface utilisateur de gestion
Si un utilisateur n'est pas autorisé à créer ni à modifier une règle d'enregistrement des transactions, les boutons de l'interface utilisateur permettant de créer et de modifier une règle d'enregistrement des transactions sont désormais désactivés.
MGMT-1899 Suppression des chemins de ressources après l'enregistrement des paramètres du produit
Lors de la modification d'un produit API, les chemins de ressources du produit pouvaient être supprimés si l'utilisateur double-cliquait sur le bouton "Enregistrer". Ce problème a été résolu.
MGMT-1894 La page "Applications du développeur" ne finit jamais de se charger pour la colonne "Développeur"
MGMT-1882 Le nouveau proxy d'API à partir du WSDL n'affiche que les détails du dernier paramètre
MGMT-1878 Si plusieurs révisions sont déployées dans un environnement, Trace n'en affiche qu'une seule.
MGMT-1872 Impossible de télécharger des rapports personnalisés
MGMT-1863 Journaux Node.js non visibles dans l'interface utilisateur de gestion
MGMT-1843 Le proxy d'API ne s'ouvre pas
MGMT-1833 L'utilisateur sysadmin ne doit pas avoir la possibilité de modifier le mot de passe dans l'UI pour OPDK.
MGMT-1825 Bugs de script intersites (XSS)
MGMT-1824 Erreur de récupération du WSDL lors de l'importation d'un fichier WSDL avec l'extension .xml
MGMT-1812 Ajouter la validation TargetEndpoint lors de l'importation
Comme pour ProxyEndpoint, le TargetEndpoint sera validé pour le schéma et les expressions appropriés utilisés dans les conditions lors de l'importation du proxy d'API.
MGMT-1804 L'API Node.js envoie un code JSON non valide dans certains cas
L'écran des journaux Node.js affichait des journaux non formatés si les données JSON contenaient des caractères non valides. Ce problème a été résolu dans cette version. L'UI affiche désormais des journaux Node.js bien mis en forme.
MGMT-1802 URL de réinitialisation du mot de passe #118
Si l'interface utilisateur de gestion se trouve derrière un serveur de terminaison SSL, elle génère désormais correctement un e-mail de réinitialisation du mot de passe avec un lien vers une URL https au lieu d'une URL http.
MGMT-1799 Interface utilisateur Trace pour l'envoi de demandes concernant les failles de sécurité
MGMT-1777 Impossible d'ajouter un utilisateur dont l'adresse e-mail se termine par .acn
MGMT-1735 Branding "Error while fetching W"
Nous avons immédiatement supprimé la prise en charge du branding personnalisé dans Edge OPDK. Nous comprenons que cela puisse décevoir les quelques clients qui l'utilisaient, mais il ne s'agit pas d'une fonctionnalité qui améliore directement les capacités d'Edge en matière de gestion des API.
MGMT-1569 Problème d'association d'un proxy d'API à un produit d'API existant
Correction de l'association d'un proxy d'API à un produit d'API dans l'UI de gestion lorsque le proxy d'API comportait une ressource pour le chemin "/".
MGMT-1563 Le bouton "Envoyer" de Trace reste désactivé en cas d'erreur
MGMT-1362 L'e-mail "Mot de passe oublié" ne fonctionne pas si l'adresse e-mail contient un caractère "_"
Résolution du problème de réinitialisation du mot de passe dans OPDK avec les adresses e-mail contenant un caractère de soulignement.
MGMT-1345 L'importation d'un fichier WSDL avec plusieurs espaces de noms entraîne une étape de compilation SOAP incorrecte
MGMT-1193 L'enregistrement d'un proxy en tant que nouvelle révision modifie de manière inattendue la règle de route
MGMT-1061 SmartDocs : la description du paramètre de type de corps dans la définition Swagger ne s'affiche pas dans l'UI de documentation
MGMT-800 La création d'une ressource portant le nom "default" entraîne un dysfonctionnement de l'UI
MGMT-787 Problème d'usabilité lié à l'alerte de l'UI
Dans l'UI de gestion, lorsque vous cliquez sur "+ Proxy d'API" et que la boîte de dialogue "Nouveau proxy d'API" s'affiche, vous pouvez appuyer sur Échap pour la fermer.
MGMT-619 Activer la pagination sur la page de l'UI du proxy d'API
MGMT-602 Vue "Develop" du proxy d'API : l'ajout d'une règle de cache de réponse lorsqu'un point de terminaison ne comporte pas de PreFlow/PostFlow provoque une erreur
MGMT-460 Le changement de nom d'une règle entraîne un comportement instable et la création d'une règle en double qui ne peut pas être supprimée.
DEVRT-1644 La recherche de notifications par nom entraîne l'envoi d'un e-mail incorrect
DEVRT-1583 L'interface utilisateur de la section "Monétisation" affiche le badge "À venir" pour un plan tarifaire actuel
DEVRT-1546 Les limites du forfait ne fonctionnent pas
DEVRT-1511 Erreur mint.resourceDoesNotExist pour un développeur existant
CORERT-639 TCPSysLogSocket doit être asynchrone
CORERT-613 Échec du handshake SSL en raison de "unrecognized_name"
AXAPP-1728 Ignorer les variables de monétisation dans les données analytiques
AXAPP-1708 L'API Analytics semble générer des chiffres différents pour la même statistique selon la façon dont je pose la question
AXAPP-1707 Améliorer les performances des données analytiques des pods sans frais
AXAPP-1690 Erreur"API non valide" dans les rapports personnalisés
AXAPP-1533 La carte géographique Analytics renvoie une erreur d'appel d'API non valide
AXAPP-1493 Statistiques incorrectes sur les performances du cache
APIRT-1436 Créer un outil/script pour hacher les jetons non hachés
APIRT-1425 L'attribut "continueOnError" n'a aucun effet lorsqu'il est défini sur "true" dans la règle JavaCallout.
APIRT-1346 OAuth 2.0 : une valeur hachée est renvoyée dans la réponse du jeton d'accès lorsque hash.oauth.tokens.enabled est défini sur "true"
APIRT-1206 target_ip n'est pas enregistré dans la table de faits pour les erreurs 503 et la plupart des erreurs 504.
APIRT-1170 Un fichier de ressources manquant a empêché le chargement d'un environnement dans le module Preview
APIRT-1148 GET de la variable {message.version} dans ResponseFlow, pour une cible Node.js, génère une exception NullPointerException
APIRT-1054 L'enregistrement des messages échoue lorsque vous essayez d'enregistrer les messages dans un répertoire autre que celui par défaut.
APIRT-387 Exécuter OrganizationService dans la saveur "others" sur MP
APIRT-67 La stratégie OAuth GenerateAccessToken ne définit pas correctement la variable oauthV2.failed
APIRT-52 Rapports personnalisés : le code d'état de réponse de nombreuses API est nul

Problèmes connus

Cette version présente les problèmes connus suivants.

ID du problème Description
OPDK-1586

Le portail API BaaS ne démarre pas si la compatibilité avec IPV6 n'est pas activée
Pour que le portail API BaaS s'exécute, vous pouvez commenter la ligne IPV6 suivante dans /<install-dir>/apigee4/conf/nginx/conf.d/loadbalancer.conf ou activer la compatibilité avec IPV6 :

# listen [::]:8080;

OPDK-1785

Installer le composant de monétisation sur un environnement Edge installé mis à niveau
Si vous mettez à niveau une installation Edge vers la version 4.15.07.00 et que vous n'utilisiez pas déjà la monétisation avant la mise à niveau, vous ne pouvez pas installer la monétisation sur la version 4.15.07.00 d'Edge.

La solution de contournement consiste à définir la bonne version de la monétisation dans le fichier apigee-env.sh avant de tenter d'installer la monétisation. Pour obtenir la version de la monétisation dans la version 4.15.07 (après avoir déjà effectué la mise à niveau vers Edge 4.15.07), exécutez la commande suivante :
> source /{install-dir}/apigee4/bin/apigee-env.sh

> VER=`basename $(find $SHARE_DIR/installer/monetization -name "mint-*.zip") | cut -d "-" -f 2,3,4`
Par défaut, install-dir est défini sur /opt.
La valeur de VER ci-dessus doit être définie dans apigee-env.sh :
> sed -i "s/^MONETIZATION_VERSION=.*/MONETIZATION_VERSION=$VER/" /install-dir/apigee4/bin/apigee-env.sh
Si vous avez essayé d'installer la monétisation sans suivre les étapes ci-dessus, l'installation échouera et il y aura probablement un lien symbolique mort dans le répertoire partagé. Vous devez supprimer ce lien symbolique :
> rm /install-dir/apigee4/share/monetization
Après avoir supprimé le lien symbolique, suivez les étapes ci-dessus pour définir la version de la monétisation, puis réessayez d'installer la monétisation.
OPDK-1857 Version Python 2.6 codée en dur dans bin/qpid-stat.sh et bin/qpid-config.sh

Sur CentOS et RedHat 7.0, plusieurs scripts dans bin/qpid-stat.sh et bin/qpid-config.sh sont codés en dur pour utiliser Python 2.6.

Pour contourner ce problème, modifiez la ligne exportant le PYTHONPATH dans qpid-stat.sh et qpid-config.sh dans le répertoire apigee4/bin.

export PYTHONPATH="${QPID_DIR}/lib/python2.6/site-packages"

Pour déterminer la version de Python sur votre système, vérifiez la version de Python dans le répertoire /opt/apigee4/share/apache-qpid/lib. Le répertoire est très probablement python2.7.

Vous devez ensuite mettre à jour le paramètre PYTHONPATH dans qpid-stat.sh et qpid-config.sh avec le chemin d'accès approprié. Exemple :

export PYTHONPATH="${QPID_DIR}/lib/python2.7/site-packages"

DEVRT-1574 Incohérences entre le solde et l'utilisation pour les développeurs disposant de plusieurs plans tarifaires actifs
Dans la section "Monétisation", si un développeur est actif sur plusieurs plans tarifaires avec des frais par appel d'API, l'utilisation du solde monétaire peut parfois être incohérente.
APIBAAS-1647 Après la connexion en tant qu'administrateur système, l'interface utilisateur BaaS affiche le message "Error getting roles" (Erreur lors de la récupération des rôles)
Ce message d'erreur s'affiche lors de la première connexion de l'administrateur système au système après la mise à niveau de la version 4.15.01 vers la version 4.15.07. Vous pouvez ignorer ce message.
DEVRT-1834 Mise à niveau de la monétisation vers la version 4.15.07
Le script apigee-upgrade.sh affiche le message suivant à la fin, vous invitant à exécuter un autre script :
**************************************
In order to complete the monetization upgrade please run:
sudo /opt/apigee4/share/monetization/schema/migration/MOPDK4.15.04.00/
365-create-notification-condition.sh
**************************************

Vous pouvez ignorer ce message. Ce script n'est pas obligatoire et ne peut pas être exécuté.

DEVRT-1951 Configurations de notification manquantes lors d'une nouvelle installation de la monétisation
Lors d'une nouvelle installation d'Apigee Edge pour le cloud privé version 4.15.07.00, les configurations suivantes pour les notifications de monétisation sont manquantes. Elles correspondent aux types de notifications sur la page Administration > Notifications de l'interface utilisateur de gestion.
mint.scheduler.${ORG_ID}.adhocnotify@@@management
mint.scheduler.${ORG_ID}.expiringrateplannotify@@@management
mint.scheduler.${ORG_ID}.newpkgnotify@@@management
mint.scheduler.${ORG_ID}.newproductnotify@@@management
mint.scheduler.${ORG_ID}.newrateplannotify@@@management
mint.scheduler.${ORG_ID}.tncacceptancenotify@@@management
Pour contourner ce problème, procédez comme suit. Vous aurez besoin de l'adresse IP de votre instance Cassandra. Pour le trouver, recherchez-le dans <installation-root>/apigee4/conf/cassandra/cassandra.yaml ou <installation-root>/apigee4/conf/cassandra/cassandra-topology.properties.
  1. Exécutez les commandes suivantes : Laissez la variable {ORG_ID} telle quelle, mais remplacez <org_name>, <installation-root> et <cassandra_ip_address>.
    sed -e "s/\${ORG_ID}/<org_name>/g" <installation-root>/apigee4/share/monetization/schema/cassandra/org/ui/mint-org-specific-ui-schedulers.txt > /tmp/mint-org-specific-ui-schedulers.txt
    
    <installation-root>/apigee4/share/apache-cassandra/bin/cassandra-cli -h <cassandra_ip_address> -f /tmp/mint-org-specific-ui-schedulers.txt
  2. Redémarrez le serveur de gestion.
DEVRT-1952 Configurations de notification manquantes pour la migration de la monétisation depuis la version 4.14.07.00
Lors d'une mise à niveau d'Apigee Edge pour un cloud privé de la version 4.14.07.00 à la version 4.15.07.00, les configurations suivantes pour les notifications de monétisation sont manquantes, ce qui entraîne un fonctionnement incorrect des rapports sur la monétisation.
mint.scheduler.${ORG_ID}.chargedaily@@@management
mint.scheduler.${ORG_ID}.chargehourly@@@management
Pour contourner ce problème, procédez comme suit. Vous aurez besoin de l'adresse IP de votre instance Cassandra. Pour le trouver, recherchez-le dans <installation-root>/apigee4/conf/cassandra/cassandra.yaml ou <installation-root>/apigee4/conf/cassandra/cassandra-topology.properties.
  1. Exécutez les commandes suivantes : Laissez la variable {ORG_ID} telle quelle, mais remplacez <org_name>, <installation-root> et <cassandra_ip_address>.
    sed -e "s/\${ORG_ID}/<org_name>/g" <installation-root>/apigee4/share/monetization/schema/cassandra/org/system/mint-org-specific-system-schedulers.txt > /tmp/mint-org-specific-system-schedulers.txt
    
    <installation-root>/apigee4/share/apache-cassandra/bin/cassandra-cli -h <cassandra_ip_address> -f /tmp/mint-org-specific-system-schedulers.txt
  2. Redémarrez le serveur de gestion.
OPDK-1878 Impossible de définir le nom du pod dans une installation à plusieurs centres de données
Le guide d'installation Edge indique de définir les noms de pod sur "gateway-1" et "gateway-2" dans les fichiers d'installation silencieuse pour une installation à plusieurs centres de données. Toutefois, renommer le pod empêche l'enregistrement correct des routeurs et des processeurs de messages, et les rend inaccessibles. Ce problème empêche également le script setup-org.sh de trouver les processeurs de messages disponibles.

La solution de contournement consiste à définir le nom du pod sur "gateway" à l'aide de la propriété MP_POD dans le fichier d'installation silencieuse pour les deux centres de données.
OPDK-1886

Le nœud ne peut pas accéder aux adresses IP locales telles que 192.168.x.y
L'erreur "connect EINVAL" s'affiche lorsque vous essayez d'accéder à une adresse IP locale.
La solution de contournement consiste à modifier le fichier /<install_dir>/apigee4/conf/apigee/message-processor/nodejs.properties sur les nœuds Message Processor pour mettre en commentaire la ligne suivante :

connect.ranges.denied=10.0.0.0/8,192.168.0.0/16,127.0.0.1/32

Redémarrez ensuite les nœuds Message Processor :

<install_dir>/apigge4/bin/apigee-service message-processor restart 
OPDK-1958 Lors de la mise à niveau, tous les nœuds devront avoir accès au port 8080 sur le serveur de gestion.
Lors de l'exécution, les composants suivants doivent avoir accès au port 8080 sur le serveur de gestion : routeur, processeur de messages, UI, Postgres et Qpid. Toutefois, lors de la mise à niveau, tous les nœuds auront besoin d'accéder au port 8080 sur le serveur de gestion, y compris les nœuds Cassandra et ZooKeeper.
OPDK-1962 Vous devez reconfigurer SSL pour l'API Edge après la mise à niveau
Si vous avez configuré l'API Edge pour qu'elle utilise SSL avant la mise à niveau vers la version 4.15.07.00, vous devez reconfigurer SSL après la mise à niveau. Consultez le Guide des opérations Edge pour connaître la procédure de configuration de SSL pour l'API Edge.