Skip To Content

Crear y administrar webhooks

Un webhook es un mecanismo que permite que una aplicación proporcione información basada en eventos a otras aplicaciones. Como administrador de un portal de ArcGIS Enterprise, puede crear, administrar y configurar webhooks. Puede configurar sus webhooks para que le notifiquen automáticamente cuando sucedan eventos asociados con los elementos, grupos y usuarios del portal. Cuando se desencadena un webhook, se realiza una solicitud HTTP a una URL de carga única definida por el usuario para ofrecer información relacionada con el evento.

Términos clave

A continuación se muestran términos clave de los webhooks:

  • Evento desencadenador: la operación que configura para desencadenar el webhook. Por ejemplo, puede configurar su webhook para que se desencadene cuando se actualice un grupo específico de su organización o cuando se comparta un elemento. Un webhook puede tener más de un evento desencadenador.
  • Carga: los datos del evento desencadenador que envía el webhook después de que ocurra el evento especificado. Esta información tiene el formato JSON. Consulte la sección Cargas que aparece a continuación para obtener más información.
  • URL de carga: la ubicación a la que se enviará la carga. Es posible crear la URL de carga con servicios como Microsoft Flow, Zapier o IFTTT. También puede crear su propio extremo de servicio web personalizado con la plataforma que elija.

Ejemplos de casos de uso

Los webhooks permiten la integración de flujos de trabajo en sistemas; existen diversas formas de aprovechar los webhooks en su organización.

Monitorizar actividades en ArcGIS Enterprise

Puede utilizar los webhooks para monitorizar actividades en ArcGIS Enterprise. Por ejemplo, puede suscribirse a todos los eventos asociados con un elemento concreto. El webhook se desencadena cuando se actualizan las propiedades del elemento, y una solicitud HTTPS proporciona una carga con datos que describen el evento. Usted decide el lugar de entrega de esta carga y podrá tomar las medidas adecuadas tras recibir la información.

Eventos desencadenadores compatibles

Cuando crear el webhook, se está suscribiendo a los eventos desencadenadores. Puesto que estos eventos son operaciones del portal, es necesario proporcionar la URI de la operación en la configuración del webhook. Las siguientes subsecciones describen los eventos desencadenadores disponibles y las URI asociadas.

Elementos

Las propiedades del elemento que se pueden actualizar varían entre tipos de elementos y existen acciones únicas que desencadenan la operación /update. Por ejemplo, si el elemento es un mapa web, actualizar la etiqueta, configurar un elemento emergente o cambiar el mapa base son eventos de actualización que desencadenarán el webhook.

La siguiente tabla muestra los eventos desencadenadores de elementos del portal compatibles, lo que incluye mapas web, aplicaciones web, capas, paquetes, documentos PDF, etc.:

Desencadenar eventoEjemplo de URI

Todos los eventos desencadenadores de todos los elementos

/items

Agregar elemento al portal

/items/add

Todos los eventos desencadenadores de un elemento específico

/items/<itemID>

Eliminar un elemento específico

/items/<itemID>/delete

Actualizar las propiedades de un elemento específico

/items/<itemID>/update

Mover o cambiar la propiedad de un elemento

/items/<itemID>/move

Publicar un elemento específico

/items/<itemID>/publish

Compartir un elemento específico

/items/<itemID>/share

Dejar de compartir un elemento específico

/items/<itemID>/unshare

Grupos

Todos los cambios generales realizados en la configuración del grupo constituyen una actualización. Por ejemplo, cambiar el acceso de un grupo desencadenará un evento de actualización.

La siguiente tabla muestra los eventos desencadenadores asociados con grupos:

Desencadenar eventoEjemplo de URI

Todos los eventos desencadenadores de todos los grupos

/groups

Agregar grupo

/groups/add

Todos los eventos desencadenadores de un grupo específico

/groups/<groupID>

Actualizar un grupo específico

/groups/<groupID>/update

Eliminar un grupo específico

/groups/<groupID>/delete

Habilitar la Protección contra eliminación para un grupo específico

/groups/<groupID>/protect

Deshabilitar la Protección contra eliminación para un grupo específico

/groups/<groupID>/unprotect

Invitar a un usuario a un grupo específico

/groups/<groupID>/invite

Agregar a un usuario a un grupo específico

/groups/<groupID>/addUsers

Eliminar un usuario de un grupo específico

/groups/<groupID>/removeUsers

Actualizar el rol de un usuario en un grupo específico

/groups/<groupID>/updateUsers

Usuarios

Los eventos de actualización se desencadenan siempre que se realiza un cambio en el perfil del usuario. Sin embargo, los cambios que se realizan en el rol, el tipo o la licencia de un usuario no se consideran una actualización del perfil del usuario.

La siguiente tabla muestra los eventos desencadenadores asociados con usuarios:

Desencadenar eventoEjemplo de URI

Todos los eventos desencadenadores de todos los usuarios del portal

/users

Agregar un usuario a la organización

/users/add

Todos los eventos desencadenadores asociados con un usuario específico

/users/<username>

Un usuario especificado ha iniciado sesión en el portal

/users/<username>/signIn

Un usuario especificado ha cerrado sesión en el portal

/users/<username>/signOut

Eliminar un usuario específico

/users/<username>/delete

Actualizar el perfil de un usuario específico

/users/<username>/update

Deshabilitar la cuenta de un usuario específico

/users/<username>/disable

Habilitar la cuenta de un usuario específico

/users/<username>/enable

Cargas

Cuando se desencadena un webhook, se envía una carga a la URL de carga específica en formato JSON. Todos los eventos siguen un esquema JSON similar con información relevante del evento.

ClaveTipoDescripción
webhookName

cadena de caracteres

El nombre del webhook que envió la carga.

webhookId

cadena de caracteres

El Id. del webhook que envió la carga.

portalURL

cadena de caracteres

La URL del portal en el que se registra el webhook.

when

marca de hora

La hora a la que se envió la carga.

username

cadena de caracteres

El usuario que desencadenó el evento.

userId

cadena de caracteres

El Id. del usuario que desencadenó el evento.

when

marca de hora

La hora a la que se produjo el evento.

operation

cadena de caracteres

La operación que realizó el usuario. Puede ser:

  • add
  • addUsers
  • delete
  • disable
  • enable
  • invite
  • move
  • protect
  • publish
  • removeUsers
  • share
  • unprotect
  • unshare
  • update
  • updateUsers
source

cadena de caracteres

El tipo de elemento en el que se realizó la operación. Puede ser item, group o user.

id

cadena de caracteres

El Id. del elemento de origen en el que se realizó la operación.

properties

objeto

Propiedades adicionales asociadas con el evento. Puede ser:

  • sharedToGroups: cómo se comparte un elemento (groupID, Organización o Todos).
  • unsharedFromGroups: cómo se deja de compartir un elemento (groupID, Organización o Todos).
  • removeUserNames: los nombres de los usuarios eliminados de un grupo.
  • updateUserNames: los nombres de los usuarios cuyos roles de grupo se han actualizado.
  • invitedUserNames: los nombres de los usuarios invitados a un grupo.
  • addedUserNames: los nombres de los usuarios agregados a un grupo.

URL de carga

Es necesario que el usuario proporcione una URL de carga al crear un webhook, ya que define dónde se enviará la carga. Puesto que la carga se envía a través de una solicitud POST de HTTPS, el webhook receptor se debe configurar para comunicarse mediante HTTPS y para que el portal pueda alcanzarlo. Puede usar varios servicios web, como Microsoft Flow, Zapier e IFFT, para configurar flujos de trabajo personalizados con su carga. Por ejemplo, puede crear un flujo de trabajo para que cuando Microsoft Flow reciba una carga, la analice, la formatee y la envíe a un alias de correo electrónico. De forma alternativa, puede crear y personalizar su servicio web para que reciba cargas. En el caso de organizaciones que restringen el acceso a Internet, se recomienda crear un servicio web personalizado que reciba las cargas. Consulte nuestras muestras de Enterprise SDK para un servlet de Java listo para usar.

Ejemplo de carga

A continuación, se ofrece una carga de muestra que ilustra que un grupo específico se ha actualizado:

{
   "info": {
      "webhookName": "Group monitoring",
      "webhookId": "72fed926aeb74c9ca8a22aacddc6725a",
      "portalURL": "https://machineURL/portal/",
      "when": 1543192196521
   },
   "events": [{
      "username": "administrator",
      "userId": "173dd04b69134bdf99c5000aad0b6298",
      "when": 1543192196521,
      "operation": "update",
      "source": "group",
      "id": "173dd04b69134bdf99c5000aad0b6298",
      "properties": {}
   }]
}

Crear un webhook

Los webhooks solo se pueden administrar mediante el Directorio de Portal for ArcGIS. Siga estos pasos para crear un webhook:

  1. Vaya al Directorio de Portal for ArcGIS.
    https://webadaptorhost.domain.com/webadaptorname/sharing/rest
  2. Inicie sesión como administrador.

    Solo los administradores pueden crear y administrar webhooks.

    Aparece la página de usuario del administrador.

  3. Haga clic en el hipervínculo ID de organización o realice una solicitud del siguiente formulario para ir a la página del recurso Portal Self.
    https://webadaptorhost.domain.com/webadaptorname/sharing/rest/portals/<org Id>
  4. Desplácese al final de la página, a Webhooks en Recursos secundarios.
    https://webadaptorhost.domain/com/webadaptorname/sharing/rest/portals/<org Id>/webhooks
  5. En Operaciones compatibles, seleccione Create Webhook.
  6. Especifique los parámetros de su webhook.

    Consulte la documentación de la API REST de los webhooks para obtener más información sobre estos parámetros.

    Ahora su webhook aparece con los demás. https://webadaptorhost.domain.com/webadaptorname/sharing/rest/portals/<org Id>/webhooks

Administrar webhooks

Puede administrar sus webhooks mediante el Directorio de Portal for ArcGIS si realiza una solicitud del siguiente formulario:

https://webadaptorhost.domain.com/webadaptorname/sharing/rest/<org Id>/webhoooks/<webhookID>.

Las operaciones compatibles para administrar sus webhook son:

  • Update Webhook: actualiza los parámetros del webhook. Puede actualizar el nombre, la URL de carga, la configuración o los eventos desencadenadores del webhook especificado.
  • Delete Webhook: elimina el webhook del portal.
  • Deactivate Webhook y Activate Webhook: desactiva el webhook, lo que detiene el envío de las cargas cuando se ha desencadenado el webhook. Cuando se desactiva el webhook, la operación Activar webhook está disponible para reanudar el envío de cargas.

La página Notification Status muestra información relacionada con los eventos desencadenadores asociados con el webhook específico. Puede usar esta tabla para supervisar el webhook y los detalles de las cargas enviadas, por ejemplo, la hora a la que se desencadenó el webhook y las respuestas recibidas de la URL de carga, así como la carga enviada. Los registros que indican el envío correcto de una carga se eliminan a las 24 horas. Los registros que indican un envío fallido se almacenan durante siete días.

Consulte la API de webhooks para ver ejemplos de estas operaciones.

Configurar parámetros avanzados

Existen varios parámetros avanzados que puede utilizar para personalizar aún más sus webhooks. Dichos parámetros se aplicarán a todos los webhooks configurados en su portal y se puede acceder a ellos desde https://webadaptorhost.domain.com/webadaptorname/sharing/rest/portals/<org ID>/webhooks/settings.

Mediante la operación Update puede actualizar estos parámetros:

  • Número de intentos de envío: especifique el número de intentos que se realizarán para enviar una carga. El valor predeterminado son tres y se puede aumentar hasta cinco.
  • Tiempo de espera de notificación: especifique el periodo de tiempo que tendrá que esperar una conexión para recibir una respuesta. Si no se recibe ninguna respuesta durante este intervalo, la conexión caducará y se considerará un intento de notificación fallido.
  • Tiempo transcurrido entre intentos de envío: especifique el tiempo entre cada intento de envío de carga. El valor predeterminado es de 30 segundos y se puede aumentar a un máximo de 100 o reducir a un mínimo de 1.

Consulte la documentación de la API de los webhooks para obtener más información sobre cómo configurar parámetros avanzados.

Preguntas frecuentes sobre webhooks

Mi ArcGIS Enterprise está implementado en un entorno desconectado, detrás del firewall de mi organización. ¿Puedo seguir configurando webhooks?

Sí. Para configurar webhooks, deberá usar una URL de carga a la que pueda acceder su portal de ArcGIS Enterprise. Para ello, puede crear una aplicación personalizada e implementarla en su servidor interno.

¿Qué constituye una actualización de un elemento, usuario o grupo?

Si se suscribió a las actualizaciones de los elementos, usuarios y grupos de su portal, su webhook se desencadenará cuando se hayan actualizado sus propiedades. Por ejemplo, si se ha suscrito a las actualizaciones de un elemento específico de su portal, su webhook se desencadenará si se actualizó el título, las etiquetas o la vista en miniatura del elemento. Una forma sencilla de determinar si una acción constituye una actualización en su portal es el ejemplo del tráfico de red. Siempre que una acción dé lugar a la llamada de la operación Actualizar, la misma acción también podrá desencadenar un webhook a la escucha de actualizaciones.

Utilizo la Autenticación integrada de Windows en mi portal de ArcGIS Enterprise. ¿Aún puedo suscribirme al inicio y cierre de sesión del portal (user/<username>/signIn)?

Estos eventos solo se desencadenan cuando un usuario inicia o cierra sesión a través de OAuth. Por tanto, la Autenticación integrada de Windows (IWA) y SAML no se admiten. No obstante, PKI y la seguridad integrada del portal sí admiten eventos de inicio y cierre de sesión.

¿Qué ocurre si mi URL de carga deja de funcionar o deja de estar disponible? ¿Hay alguna forma de recuperar una carga que no se envió?

Si el portal intenta entregar una carga a una URL de carga o un webhook receptor no disponibles o que no responden, los parámetros avanzados que haya configurado determinarán cómo y cuándo intentará el portal otro envío. Si estos intentos adicionales tampoco envían la carga, contará como fallo para la deactivationPolicy que definió al crear el webhook. El webhook se desactivará cuando se cumpla esta política.

Puede ir al estado de notificación del webhook para ver todos los intentos de envíos de cargas y determinar si se enviaron correctamente o no.