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: