• Accueil / Salesforce / Ajout de plages…
, Ajout de plages d&rsquo;adresses IP à partir d&rsquo;un plug-in Salesforce CLI<span class="wtr-time-wrap after-title"><span class="wtr-time-number">3</span> minutes de lecture</span>

Ajout de plages d’adresses IP à partir d’un plug-in Salesforce CLI3 minutes de lecture


, Ajout de plages d&rsquo;adresses IP à partir d&rsquo;un plug-in Salesforce CLI<span class="wtr-time-wrap after-title"><span class="wtr-time-number">3</span> minutes de lecture</span>

introduction

Je sais, une autre semaine, un autre article sur un plug-in CLI. Je n’avais vraiment pas l’intention
c’est le cas, mais j’ai récemment soumis un (deuxième génération) géré
package pour examen de sécurité et a dû ouvrir des adresses IP supplémentaires pour
autorisez l’équipe de sécurité à accéder à une organisation de test. Je vais probablement en soumettre plus
géré des packages pour révision à l’avenir, donc je voulais trouver un scriptable
façon de faire cela.

Cela s’est avéré un peu plus intéressant que ce à quoi je m’attendais à l’origine,
pour plusieurs raisons.

Il nécessite l’API de métadonnées

Pour ajouter une plage d’adresses IP, vous devez déployer les paramètres de sécurité via l’API de métadonnées.
J’ai déjà fait ça pour
activer / désactiver les tests unitaires Apex parallèles, mais c’était un peu différent. Si je crée un fichier de paramètres de sécurité avec
la ou les nouvelles gammes et les déployer, conformément au
Documentation sur l’API de métadonnées, toutes les plages IP existantes seront désactivées:

    To add an IP range, deploy all existing IP ranges, including the one you
    want to add. Otherwise, the existing IP ranges are replaced with the ones
    you deploy. 

Certainement pas ce que je veux!

Il nécessite une récupération et un déploiement

Afin d’obtenir les adresses IP existantes, je dois effectuer une métadonnée
récupérer les paramètres de sécurité de l’organisation Salesforce, ajouter les plages,
puis déployez-les. Pas de problème ici, je peux simplement utiliser la méthode de récupération sur le
classe de métadonnées que j’utilise déjà pour déployer. Bizarrement, contrairement au déploiement
fonction, la fonction de récupération ne renvoie pas de promesse, mais attendait
moi pour fournir un rappel. Je ne pouvais pas affronter le retour à l’enfer des rappels après le
paradis de async / wait dans mon développement de plug-in, j’ai donc utilisé le Node Util.Promisify
fonction qui le transforme en une fonction qui renvoie une promesse. Très cool.

const asyncRetrieve = promisify(conn.metadata.retrieve);
const retrieveCheck = await asyncRetrieve.call(...);

L’autre aspect intéressant est que je récupère les paramètres au format XML,
mais je veux un objet JavaScript à manipuler, que je dois ensuite retourner
en XML à déployer.

Pour transformer XML en JavaScript, j’utilise analyseur-xml-rapide, comme cela m’a empêché
bonne place avec mon Org Documentor. Pour accéder à l’élément NetworkAccess:

import { parse} from 'fast-xml-parser';

  ...

const settings = readFileSync(join(tmpDir, 'settings', 'Security.settings'), 'utf-8');
const md = parse(settings);

let networkAccess = md.SecuritySettings.networkAccess;
Une fois que j’ai ajouté mes nouvelles plages, je reconvertis en XML en utilisant xml2js:
import { Builder } from 'xml2js';

  ...

const builder = new Builder(
   {renderOpts:
      {pretty: true,
       indent: '    ',
       newline: 'n'},
    stringify: {
       attValue(str) {
           return str.replace(/&/g, '&')
                     .replace(/"/g, '"')
                     .replace(/'/g, ''');
       }
    },
    xmldec: {
        version: '1.0', encoding: 'UTF-8'
    }
});

const xml = builder.buildObject(md);

Le plug-in

Ceci est disponible en tant que nouvelle commande sur le bbsfdx plug-in – si vous l’avez
déjà installé, il suffit d’exécuter

plugins sfdx: mise à jour

pour mettre à jour vers la version 1.4

Si vous ne l’avez pas déjà installé (je ne mentirai pas, ça fait mal), vous pouvez exécuter:

plugins sfdx: installez bbsfdx

et pour ajouter une ou plusieurs plages:

sfdx bb: iprange: ajoutez -r 192.168.2.1,192.168.2.4: 192.168.2.255 -u

le -r switch définit la ou les plages – séparez-les par une virgule. Pour une plage, séparez les adresses de début et de fin par deux points. Pour une seule adresse, ignorez simplement les deux points et l’adresse de fin.

Articles Similaires





Source de l’article traduit automatiquement en Français

Besoin d'aide ?
Voulez-vous utiliser Pardot à sa capacité maximale et avoir
+ DE LEADS QUALIFIÉS

Notre analyse de votre Pardot offerte dès aujourd'hui
Merci, vous pouvez compléter notre questionnaire
Nous allons revenir vers vous rapidement !

Fermer