
Andrew Hanna

Andrew Hanna

En bref : Summer '26 apporte la version d'API 67.0, et pour les
équipes DevOps trois points pèsent plus lourd que tout le reste réuni. Les opérations
de base de données Apex s'exécutent désormais en user mode par défaut, les classes
sans mot-clé de partage passent par défaut à with sharing, et
WITH SECURITY_ENFORCED ne compile plus. Ces trois éléments dépendent de
la version d'API à laquelle une classe est enregistrée, ce qui fait du réglage de
version d'API de votre pipeline une décision de comportement et non une tâche
d'entretien.
Summer '26 correspond à la version d'API 67.0. L'aperçu en sandbox a ouvert le 8 mai 2026 et les déploiements en production ont eu lieu les 15 mai, 5 juin et 12 au 13 juin 2026 : si vous lisez ceci, vous y êtes déjà. La liste complète se trouve dans les notes de version. Voici le sous-ensemble qui touche le déploiement, les métadonnées et le comportement des API.
Trois choses, dans l'ordre de rapidité avec laquelle elles mordent.
WITH SECURITY_ENFORCED est retiré et ne compile plus.
Celle-ci est bruyante et immédiate : tout déploiement contenant encore la clause
fait échouer le build. Remplacez-la par WITH USER_MODE, comme l'indique
le
guide développeur de la release.
with sharing.
L'ancien défaut était l'inverse. Un code qui s'appuyait discrètement sur l'accès en
mode système renvoie désormais discrètement moins de données.
Les triggers continuent de s'exécuter en mode système dans toutes les versions. Utile à retenir, dangereux à utiliser comme béquille.
C'est le point que la plupart des récapitulatifs manquent. Les nouveaux défauts s'appliquent aux classes enregistrées en version d'API 67.0 ou ultérieure. Le comportement de votre org ne change donc pas le jour où la release arrive, mais le jour où votre pipeline monte une version d'API.
Ce qui transforme trois lignes de votre dépôt en changements fonctionnels :
sourceApiVersion dans sfdx-project.jsonpackage.xml.cls-meta.xmlTrois conséquences en découlent, et aucune n'est théorique.
L'ordre sûr consiste à déclarer explicitement le partage sur chaque classe d'abord, puis à monter la version d'API. L'explicite bat le défaut, dans les deux sens.
login() de l'API SOAP sur les versions 31.0 à 64.0,
retiré en Summer '27.
Rien de tout cela n'est urgent ce sprint. Ce sont exactement les sujets qu'on découvre dans dix-huit mois, à 2h du matin, via une intégration qui tombe. Faites l'inventaire des versions d'API tant qu'il coûte peu.
aiAgentScorerDefinitions, ce qui
place les portes qualité des agents sous gestion de versions.
ApexIntegrationTests dans le tableau
features de la définition de scratch org. Ajoutez-le avant que votre prochaine
exécution échoue sans raison apparente.
WITH SECURITY_ENFORCED dans le dépôt et remplacez-le. C'est
une rupture de build, pas un avertissement.
ApexIntegrationTests à votre définition de scratch org.Summer '26 modifie-t-il le comportement de l'Apex existant ?
Pas de lui-même. Les nouveaux défauts de user mode et de partage s'appliquent aux classes enregistrées en version d'API 67.0 ou ultérieure : les classes existantes conservent leur comportement jusqu'à ce que vous montiez leur version.
Qu'est-ce qui remplace WITH SECURITY_ENFORCED ?
Utilisez WITH USER_MODE. L'ancienne clause est retirée et ne compile plus
: tout déploiement qui la contient encore échouera.
Quand les anciennes versions d'API cessent-elles vraiment de fonctionner ?
Les versions 31.0 à 40.0 sont dépréciées avec retrait complet en Summer '28, et le
login() SOAP sur les versions 31.0 à 64.0 est retiré en Summer '27.
Passez les intégrations en 41.0 ou ultérieur.
Ces changements touchent-ils les triggers Apex ?
Non. Les triggers continuent de s'exécuter en mode système dans toutes les versions d'API.
Si votre pipeline ne sait pas vous dire quelles classes n'ont pas de mot-clé de partage explicite, c'est le manque à combler avant la prochaine release. Serpent effectue une revue de code par IA sur chaque changement, sur tous les plans, et signale exactement ce type de dérive de gouvernance avant qu'il n'atteigne la production.
Sans engagement.