Ontologías Kafka en Multitenant

Disponible desde la versión 2.1.3-gradius

En cuanto a Kafka se refiere, 2 son los principales usos dentro de la Onesait Platform:

Cuando el modo multitenant está activo, el uso de kafka varía un poco frente al comportamiento por defecto. Si el usamos el vertical y tenant por defecto, nada cambia comparado con las dos guías mencionadas anteriormente. sin embargo, si usamos un vertical o tenant diferente, las siguientes consideraciones tienen que tenerse en cuenta.

  • Nomenclatura de los tópicos Kafka relacionados con ontologías.

    Por defecto hay 2 prefijos para tópicos, uno para tópicos de entrada de datos (ONTOLOGY) y otro para notificaciones en tópicos (ONTOLOGY_OUTPUT). Los nombres de los tópicos se compondrán de la siguiente manera:

    • Tópico de entrada: <PREFIJO_ENTRADA>-<NOMBRE_VERTICAL>-<NOMBRE_TENANT>-<NOMBRE_ONTOLOGÍA>

    • Tópico de notificación: <PREFIJO_NOTIFICACIÓN>-<NOMBRE_VERTICAL>-<NOMBRE_TENANT>-<NOMBRE_ONTOLOGIA>

      Por ejemplo, vamos a crear una ontología llamada “MyOntology” a la cual le activaremos ambos check de Kafka (entrada y notificación). A continuación crearemos un Cliente Digital con un token perteneciente a otro tenant distinto al de por defecto, pero en el mismo vertical.


      Si vamos a insertar datos a la ontología a través del tópico Kafka, siguiendo la nomenclatura, éste se llamará: ONTOLOGY-ONESAITPLATFORM-TENANT_RENE-MYONTOLOGY

      Si queremos estar escuchando las notificaciones de inserción de una ontología, el nombre del tópico de notificaciones será: ONTOLOGY_OUTPUT-ONESAITPLATFORM-TENANT_RENE-MYONTOLOGY

       

  • Seguridad. Clientes Digitales y usuarios Kafka

    Onesait Platform tiene su propio plugin de seguridad, donde los Clientes Digitales representan también usuarios Kafka. cuando nos conectamos a Kafka de plataforma, se requiere el uso de un fichero JAAS, indicando en el valor del “username” el nombre del Cliente Digital y en el campo “password” un token generado para este.
    Si multitenant está activado y queremos usar un vertical o tenant distintos de los de por defecto, el “username” dejará de ser solo el nombre del Cliente Digital para seguir la siguiente nomenclatura:<NOMBRE_CLIENTE_DIGITAL>-<NOMBRE_VERTICAL>-<NOMBRE_TENANT>.

    Usemos el mismo ejemplo que el caso anterior. Conectaremos un cliente a Kafka (sea para escribir datos o para recibir notificaciones) pero usando un tenant distinto del por defecto, en este caso “tenant_rene”. Siguiendo la regla descrita en este punto, el “username” que tendremos que utilizar será MyKafkaClient-onesaitplatform-tenant_rene y la “password” de JAAS será el token asociado a dicho tenant:

     

Esto se puede ver si miramos las ACLs/permisos en Kafka para cada tópico y usuario: