Integracion con CRM =================== Migracion de CRM existente a API PDNS ------------------------------------- En el caso de disponer de desarrolladores, una empresa puede elegir prescindir de la web de **pdns-app** y basar sus pantallas front-end en llamadas API a https://pdns-app.planisys.net:8443, siempre dentro del escenario de tener la aplicacion dentro de la nube de Planisys. P.ej. puede desarrollar una aplicacion en ``Angular``, ``React`` o ``VueJS`` , y utilizando la **API REST** de PDNS. De esta manera no va a necesitar modificar su entorno integrado para Clientes, pudiendo agregar/modificar o dejar igual las pantallas relativas a DNS de su CRM actual. Para esto Planisys dispone de APIKEYs tanto a nivel **Revendedor** como a nivel **Empresa** (esta ultima con menos privilegios), que se envian como ``Authorization Headers`` en la API REST, indicando el **short-name** de la empresa cliente o del revendedor junto a su ``APIKEY``. .. note:: Un revendedor puede modificar su APIKEY si cree que ha sido comprometida, o por politica general de seguridad. Lo mismo puede hacer una empresa cliente con su APIKEY. Tambien puede un revendedor modificar la APIKEY de una empresa cliente si lo considera necesario por politica, o si el cliente requiere de un servicio gerenciado. Integracion Transparente con CRM sin hacer modificaciones --------------------------------------------------------- En el caso de disponer de un CRM con interfaz para generar **zonas bind**, la solucion que ofrece PDNS es la de utilizar una tecnica de **Nameserver Secundario Oculto**. Mediante esta tecnica, uno de los servidores Bind9 del cliente debera dejar disponible la lista de zonas via ``rsync`` , y ademas debera permitir la transferencia de zonas desde su Bind9 hacia el **Nameserver secundario oculto**. De esta forma, periodicamente (p.ej. cada 1 minuto), PDNS puede traerse via rsync la lista de zonas y detectar si hubo un delta. Si no hubo delta no se hace nada a nivel lista de zonas. Si hubo un delta, se reconfigura el Secundario Oculto para que agregue/quite zonas del delta. Luego, basta con una recarga para traerse las zonas faltantes, o eliminar las zonas que han cambiado. En paralelo, cada minuto (a menos que el Bind9 del cliente configure ``NOTIFY-ALSO`` para notificarnos de cambios de seriales de zona) se chequean los seriales de todas las zonas. Si alguno cambio, PDNS va a hacer un **dump** de la zona que cambio, luego **parsearlo** e **importarlo** en su propio backend ``MySQL``. De esta manera, podra propagar cambios realizados en los DNSs del cliente (disparados por modificaciones en el CRM del cliente), incorporarlos a su backend, y luego propagarlos a traves de sus autoritativos. .. note:: en el caso de utilizar pdns-app en vez de la modalidad On-Premise, hay que recordar que los recursivos y los autoritativos de un Revendedor no tienen que estar necesariamente en la nube de Planisys (donde corre pdns-app), y que pueden estar con cualquier arquitectura o nube. En este grafico se muestra el proceso de integracion **transparente** y **automatico** utilizando una tecnica de ``RSYNC+AXFR`` en donde PDNS-APP hace uso de su Bind9 integrado como **Shadow Secondary**: .. image:: custom-crm.jpg