

# Conexión a Monday
<a name="connecting-to-monday"></a>

 Monday.com es un sistema operativo de trabajo versátil que optimiza la administración de proyectos y la colaboración en equipo. Ofrece flujos de trabajo personalizables, paneles visuales y herramientas de automatización para mejorar la productividad. Los usuarios pueden realizar el seguimiento de las tareas, administrar recursos y comunicarse de manera efectiva en una plataforma integrada. 

**Topics**
+ [Compatibilidad de AWS Glue con Monday](monday-support.md)
+ [Políticas que contienen las operaciones de la API para crear y usar conexiones](monday-configuring-iam-permissions.md)
+ [Configuración de Monday](monday-configuring.md)
+ [Configuración de conexiones a Monday](monday-configuring-connections.md)
+ [Lectura de entidades de Monday](monday-reading-from-entities.md)
+ [Referencia de opciones de conexión de Monday](monday-connection-options.md)
+ [Limitaciones](monday-connector-limitations.md)
+ [Cómo crear una cuenta nueva de Monday:](#monday-account-creation)

# Compatibilidad de AWS Glue con Monday
<a name="monday-support"></a>

AWS Glue admite Monday de la siguiente manera:

**¿Es compatible como origen?**  
Sí. Puede utilizar los trabajos de ETL de AWS Glue para consultar datos de Monday.

**¿Es compatible como destino?**  
No.

**Versiones de la API de Monday compatibles**  
 v2 

# Políticas que contienen las operaciones de la API para crear y usar conexiones
<a name="monday-configuring-iam-permissions"></a>

 En el siguiente ejemplo de política se describen los permisos de AWS necesarios para crear y utilizar conexiones. Si va a crear un nuevo rol, cree una política que contenga lo siguiente: 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

También puede usar las siguientes políticas de IAM administradas para permitir el acceso:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole): concede acceso a los recursos que necesitan diversos procesos de AWS Glue para ejecutarse en su nombre. Entre estos recursos se incluyen AWS Glue, Amazon S3, IAM, CloudWatch Logs y Amazon EC2. Si aplica la convención de nomenclatura en los recursos especificados en esta política, los procesos de AWS Glue tienen los permisos necesarios. Normalmente, esta política se asocia a los roles que se especifican a la hora de definir rastreadores, trabajos y puntos de conexión de desarrollo. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess): concede acceso total a los recursos de AWS Glue cuando una identidad a la que está asociada la política utiliza la consola de administración de AWS. Si sigue la convención de nomenclatura para los recursos especificados en esta política, los usuarios dispondrán de todas las funciones de la consola. Esta política se suele adjuntar a los usuarios de la consola AWS Glue. 

# Configuración de Monday
<a name="monday-configuring"></a>

Antes de poder utilizar AWS Glue para transferir datos desde Monday, deberá cumplir estos requisitos:

## Requisitos mínimos
<a name="monday-configuring-min-requirements"></a>
+  Tener una cuenta para desarrolladores de Monday con correo electrónico y contraseña. Para obtener más información, consulte [Cómo crear una cuenta nueva de Monday:](connecting-to-monday.md#monday-account-creation). 
+  La cuenta para desarrolladores de Monday debe estar habilitada para el acceso de API. La API de Monday se puede utilizar sin ningún costo adicional durante el periodo de prueba. Una vez finalizado el periodo de prueba, deberá comprar una suscripción para crear datos y acceder a estos. Para obtener más información, consulte la [página de licencias de Monday](https://developer.monday.com/api-reference/reference/about-the-api-reference). 

 Si cumple estos requisitos, estará listo para conectar AWS Glue a la cuenta de Monday. Si se trata de una conexión típica, no necesita hacer nada más en Monday. 

# Configuración de conexiones a Monday
<a name="monday-configuring-connections"></a>

Monday admite los siguientes dos tipos de mecanismos de autenticación:

1.  Autenticación OAuth: Monday admite el tipo de concesión AUTHORIZATION\$1CODE para OAuth2. 
   +  Este tipo de concesión se considera un OAuth “de tres vías”, ya que se basa en redirigir a los usuarios al servidor de autorización externo para autenticar al usuario. Se utiliza para crear conexiones a través de la consola de AWS Glue. El usuario que crea una conexión puede, de forma predeterminada, confiar en una aplicación conectada propiedad de AWS Glue en la que no necesita proporcionar ninguna información relacionada con OAuth, excepto la URL de la instancia de Monday. La consola de AWS Glue redirigirá al usuario a Monday, donde deberá iniciar sesión y conceder a AWS Glue los permisos solicitados para acceder a su instancia de Monday. 
   +  Los usuarios deberían optar por crear una aplicación conectada propia en Monday y proporcionar su propio ID y secreto de cliente al crear conexiones a través de la consola de AWS Glue. En este escenario, aún se abrirá Monday para iniciar sesión y autorizar a AWS Glue para que acceda a sus recursos. 
   +  Este tipo de concesión da como resultado un token de actualización y un token de acceso. El token de acceso permanecerá válido durante una hora y se puede actualizar automáticamente sin la interacción del usuario mediante el token de actualización. 
   +  Para obtener más información, consulte la [documentación sobre la creación de una aplicación conectada para el flujo Authorization Code OAuth](https://developers.Monday.com/docs/api/v1/Oauth). 

1.  Autenticación personalizada: 
   +  Para consultar la documentación de Monday sobre cómo generar las claves de API necesarias para la autorización personalizada, consulte [https://developer.monday.com/api-reference/docs/authentication\$1api-token-permissions ](https://developer.monday.com/api-reference/docs/authentication#api-token-permissions). 

Para configurar una conexión a Monday:

1.  En AWS Secrets Manager, cree un secreto con los siguientes detalles. Es necesario crear un secreto para cada conexión en AWS Glue. 

   1.  Para la autenticación OAuth: 
      +  En el caso de aplicaciones conectadas administradas por el cliente, el secreto debe contener el secreto del consumidor de la aplicación conectada con USER\$1MANAGED\$1CLIENT\$1APPLICATION\$1CLIENT\$1SECRET como clave. 

   1.  Para la autenticación personalizada: 
      +  En el caso de una aplicación conectada administrada por el cliente, el secreto debe contener el secreto del consumidor de la aplicación conectada con `personalAccessToken` como clave. 

1. En AWS Glue Studio, cree una conexión en **Conexiones de datos** según los pasos que se indican a continuación: 

   1.  En Conexiones de datos, elija **Crear conexión**. 

   1. Al seleccionar un **Origen de datos**, elija Monday.

   1. Proporcione la **URL de instancia** de Monday.

   1.  Seleccione el rol de IAM que AWS Glue pueda asumir y que tenga permisos para las siguientes acciones: 

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Seleccione el tipo de autenticación para conectarse a Monday 
      +  En el caso de la autenticación OAuth: proporcione la **URL del token**, el **ID de cliente de la aplicación cliente administrada por el usuario** del Monday al que se desea conectar. 
      +  En el caso de la autenticación personalizada, seleccione el tipo de autenticación **PERSONALIZADA** para conectarse a Monday. 

   1.  Seleccione el `secretName` que desee usar para esta conexión en AWS Glue para colocar los tokens. 

   1.  Seleccione las opciones de red si quiere usar su red. 

1.  Conceda el rol de IAM asociado a su permiso de trabajo de AWS Glue para leer `secretName`. Elija **Siguiente**. 

1.  En la configuración de su trabajo de AWS Glue, proporcione `connectionName` como **Conexión de red adicional**. 

# Lectura de entidades de Monday
<a name="monday-reading-from-entities"></a>

 **Requisitos previos** 
+  Un objeto de Monday desde el que desea leer. Consulte la tabla de entidades compatibles que aparece a continuación para comprobar las entidades disponibles. 

 **Entidades admitidas para el origen** 

 Lista de entidades: 
+  Cuenta: [ https://developer.monday.com/api-reference/docs/account\$1queries ](https://developer.monday.com/api-reference/docs/account#queries) 
+  Tablero: [ https://developer.monday.com/api-reference/docs/boards\$1queries ](https://developer.monday.com/api-reference/docs/boards#queries) 
+  Columna: [ https://developer.monday.com/api-reference/docs/columns\$1queries ](https://developer.monday.com/api-reference/docs/columns#queries) 
+  Documentos: [ https://developer.monday.com/api-reference/docs/docs\$1queries ](https://developer.monday.com/api-reference/docs/docs#queries) 
+  Bloque de documentos: [ https://developer.monday.com/api-reference/docs/blocks\$1queries ](https://developer.monday.com/api-reference/docs/blocks#queries) 
+  Archivos: [ https://developer.monday.com/api-reference/docs/files\$1queries ](https://developer.monday.com/api-reference/docs/files#queries) 
+  Carpetas: [ https://developer.monday.com/api-reference/docs/folders\$1queries ](https://developer.monday.com/api-reference/docs/folders#queries) 
+  Grupos: [ https://developer.monday.com/api-reference/docs/groups\$1queries ](https://developer.monday.com/api-reference/docs/groups#queries) 
+  Elemento: [ https://developer.monday.com/api-reference/docs/items\$1queries ](https://developer.monday.com/api-reference/docs/items#queries) 
+  Subelementos: [ https://developer.monday.com/api-reference/docs/subitems\$1queries ](https://developer.monday.com/api-reference/docs/subitems#queries) 
+  Etiquetas: [ https://developer.monday.com/api-reference/docs/tags-queries\$1queries ](https://developer.monday.com/api-reference/docs/tags-queries#queries) 
+  Equipos: [ https://developer.monday.com/api-reference/docs/teams\$1queries ](https://developer.monday.com/api-reference/docs/teams#queries) 
+  Actualizaciones: [ https://developer.monday.com/api-reference/docs/updates\$1queries ](https://developer.monday.com/api-reference/docs/updates#queries) 
+  Usuarios: [ https://developer.monday.com/api-reference/docs/users\$1queries ](https://developer.monday.com/api-reference/docs/users#queries) 
+  Espacios de trabajo: [ https://developer.monday.com/api-reference/docs/workspaces\$1queries ](https://developer.monday.com/api-reference/docs/workspaces#queries) 


| Entidad | Se puede filtrar | Admite límite | Admite Ordenar por | Admite Seleccionar \$1 | Admite Partición | 
| --- | --- | --- | --- | --- | --- | 
| Cuenta | No | No | No | Sí | No | 
| Tableros | Sí | Sí | No | Sí | No | 
| Columnas | No | No | No | Sí | No | 
| Documentos | Sí | Sí | No | Sí | No | 
| Bloques de documentos | No | Sí | No | Sí | No | 
| Archivos | Sí | No | No | Sí | No | 
| Grupos | No | No | No | Sí | No | 
| Elemento | Sí | Sí | No | Sí | No | 
| Subelementos | No | No | No | Sí | No | 
| Etiquetas | Sí | No | No | Sí | Sí | 
| Equipos | Sí | No | No | Sí | No | 
| Actualizaciones | No | Sí | No | Sí | No | 
| Usuarios | Sí | Sí | No | Sí | No | 
| Workspaces | Sí | Sí | No | Sí | No | 
| Carpetas | Sí | Sí | No | Sí | No | 

 **Ejemplo** 

```
monday_read = glueContext.create_dynamic_frame.from_options(
     connection_type="monday",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "account",
         "API_VERSION": "v2"
     }
```

# Referencia de opciones de conexión de Monday
<a name="monday-connection-options"></a>

Existen las siguientes opciones para establecer conexión con Monday:
+  `ENTITY_NAME`(cadena): (obligatorio) se utiliza para leer y escribir. El nombre del objeto en Monday. 
+  `API_VERSION`(cadena): (obligatorio) se utiliza para leer y escribir. Versión de la API de REST de Monday que desea usar. Ejemplo: v2. 
+  `SELECTED_FIELDS`(lista<Cadena>): predeterminado: empty(SELECT \$1). Se usa para leer. Columnas que desee seleccionar para el objeto. 
+  `FILTER_PREDICATE`(cadena): predeterminado: vacío. Se usa para leer. Debe estar en el formato de Spark SQL. 
+  `QUERY`(cadena): predeterminado: vacío. Se usa para leer. Consulta completa de Spark SQL. 

# Limitaciones
<a name="monday-connector-limitations"></a>

El conector de Monday presenta las siguientes limitaciones:
+  La respuesta de metadatos dinámicos presenta ciertos conflictos con la documentación, como se menciona a continuación: 
  +  La entidad Grupo, Columna admite las operaciones de filtrado, pero no está presente en el punto de conexión de los metadatos dinámicos, por lo que se mantiene como entidad no filtrable. 
  +  El punto de conexión dinámico consta de más de 15 000 líneas y devuelve los metadatos de todas las entidades en una sola respuesta. Como resultado, los campos tardan un promedio de 10 segundos en cargarse, lo que implica un tiempo adicional mientras se ejecuta un trabajo. 
  +  Consulte la siguiente tabla para conocer el límite de tasa de Monday. El gran tamaño de los datos de respuesta de la entidad dinámica genera un retraso notable, lo que hace que los campos tarden en promedio 10 segundos en cargarse.     
<a name="monday-rate-limit-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/monday-connector-limitations.html)

## Cómo crear una cuenta nueva de Monday:
<a name="monday-account-creation"></a>

1.  Vaya a la página de inicio de Monday, [https://monday.com/](https://monday.com/) y elija **Iniciar sesión**. 

1.  Se le redirigirá a la página de inicio de sesión. En la parte inferior de la página, elija **Registrarse**. 

1.  Ingrese la dirección de correo electrónico y elija **Continuar**. Como alternativa, puede iniciar sesión con Google. 

1.  Ingrese los detalles requeridos y seleccione **Continuar**. 

1.  Complete las preguntas de la encuesta y siga los pasos para finalizar el proceso de creación de la cuenta. 

**Cómo registrar una aplicación OAuth.**

1.  Inicie sesión en la cuenta de monday.com. Haga clic en el avatar (icono de imagen) en la esquina inferior izquierda de la pantalla. 

1.  Elija **Desarrollador**. 

1.  Seleccione **Crear una aplicación**. 

1.  Complete los campos obligatorios de nombre y descripción. 

1. Vaya a la sección “OAuth” ubicada en el lado derecho, agregue los ámbitos y seleccione “Guardar característica”.

1.  Vaya a la pestaña “URL de redirección” junto al ámbito, agregue la URL de redirección y seleccione “Guardar característica”. 

1.  En la pestaña **URL de redirección**, indique la URL de la aplicación. Debe ser https://\$1region-code\$1.console.aws.amazon.com/appflow/oauth. Por ejemplo, si utiliza `us-east-1 `, puede agregar `https://us-east-1.console.aws.amazon.com/appflow/oauth`. 

1.  La aplicación ya está lista para su uso. Puede encontrar las credenciales en la sección “Información básica”. Tome nota de las cadenas de ID de cliente y secreto de cliente. Estas cadenas se utilizan para establecer conexión con esta aplicación mediante un conector AppFlow. 

**Cómo generar un token de acceso personal:**

 Actualmente, monday.com solo ofrece tokens de API V2, los cuales son tokens personales. Para acceder a los tokens de API, puede utilizar uno de los dos métodos disponibles según el nivel de usuario. Los usuarios administradores pueden utilizar ambos métodos para obtener los tokens de API. Los usuarios miembros pueden acceder a sus tokens de API desde la pestaña Desarrollador. 

 Administradores: si es un usuario administrador en la cuenta de monday.com, puede acceder a los tokens de API desde la pestaña “Administrador”. Para ello, siga estos pasos: 

1.  Inicie sesión en la cuenta de monday.com. Haga clic en el avatar (icono de imagen) en la esquina inferior izquierda de la pantalla. 

1.  Seleccione “Administración” en el menú que aparece (para esto debe contar con permisos de administrador). 

1.  Vaya a la sección “API” y genere un “Token de API V2”. Puede copiar el token y usarlo. 

 Desarrollador: si es un usuario miembro en la cuenta de monday.com, puede acceder a los tokens de API desde la pestaña “Desarrollador”. Para ello, siga estos pasos: 

1.  Inicie sesión en la cuenta de monday.com. Haga clic en el avatar (icono de imagen) en la esquina inferior izquierda de la pantalla. 

1.  Seleccione “Desarrolladores” en el menú que aparece. 

1.  En el menú superior, seleccione el desplegable “Desarrollador”. Seleccione la primera opción del menú desplegable titulada “Mis tokens de acceso”. 