New post

Find

Article
· May 21 2m read

Manipulando configuraciones de seguridad programáticamente

Pregunta:

¿Cómo podéis crear, modificar, etc., configuraciones de seguridad como Usuarios y Roles programáticamente?

Respuesta:

Podéis usar las clases del paquete Security en el NAMESPACE %SYS. Por ejemplo Security.Roles o Security.Users.

Por supuesto, para llevar a cabo estas acciones, necesitaréis la autorización correspondiente.

Aquí tenéis un pequeño ejemplo usando Security.Roles:

 
 // Create a Role
%SYS>Set status = ##class(Security.Roles).Create("testRole","a test Role","%Development:U,%DB_USER:R")
 

// Creation was successful
%SYS>Write status
1

// Now lets examine the Role created
%SYS>Set status = ##class(Security.Roles).Get("testRole",.properties)  

// We got the properties correctly         
%SYS>Write status
1

// The properties were returned by reference
%SYS>ZWrite properties
properties("Description")="a test Role"
properties("GrantedRoles")=""
properties("Resources")="%DB_USER:R,%Development:U"
 

// Now we want to add another permission
%SYS>Set properties("Resources")=properties("Resources")_",%DB_SAMPLES:RW"
 

// And modify our Role
%SYS>Set status = ##class(Security.Roles).Modify("testRole",.properties)
 
%SYS>Write status
1

// Let's verify this worked
%SYS>Set status = ##class(Security.Roles).Get("testRole",.latestProperties)
 
%SYS>ZWrite latestProperties
latestProperties("Description")="a test Role"
latestProperties("GrantedRoles")=""
latestProperties("Resources")="%DB_SAMPLES:RW,%DB_USER:R,%Development:U"

Nota: Tened en cuenta que el comportamiento actual (a partir de la versión 2016.1) es que, si la lista de Recursos separada por comas incluye un elemento vacío (por ejemplo, 'aaa,,bbb'), la adición de recursos se detendrá en ese punto.

Este comportamiento ha sido registrado para que se examine si así lo deseáis, y en caso contrario, se corregirá.

 

Además, en la comunidad inglesa, @Evgeny Shvarov añadió:

"Sigue siendo útil con los años

Simplemente añado aquí el código para asignar un rol a un usuario:"

ClassMethod AddRoleToUser(user = "CSPSystem", role = "DB_USER_Read") As %Status
{

// Change to the %SYS namespace.
new $NAMESPACE
set $NAMESPACE="%SYS"
set status=##class(Security.Users).Get(user, .MyUserProps)

set $p(MyUserProps("Roles"),",",*)=role

set status=##class(Security.Users).Modify(user,.MyUserProps)



// Announce success.
if $$$ISOK(status) {

write !, "Roles for the user "_user_" were successfully modified."
}

Quit status

}
Discussion (0)1
Log in or sign up to continue
Article
· May 20 3m read

A knockout of weight

image

Just like a knockout punch, without giving the opponent a chance, Kubernetes, as an open source platform, has a universe of opportunities due to its availability (i.e., the ease of finding support, services and tools). It is a platform that can manage jobs and services in containers, which greatly simplifies the configuration and automation of these processes.

But let's justify the title image and give the tool in question the “correct” name: InterSystems Kubernetes Operator.

Discussion (0)1
Log in or sign up to continue
Article
· May 20 3m read

Um nocaute de peso

Desenho de animal com a boca aberta O conteúdo gerado por IA pode estar incorreto., Imagem 

 

Assim como um nocaute, sem dar chances ao adversário, o Kubernetes, enquanto uma plataforma de código aberto, tem um universo de oportunidades devido à sua disponibilidade (isto é, a facilidade para encontrar suporte, serviços e ferramentas). Ele é uma plataforma que pode gerenciar os trabalhos e serviços em contêineres, o que simplifica e muito a configuração e automação destes processos. 

Mas, vamos justificar a imagem título e dar o nome “correto” à ferramenta em questão: InterSystems Kubernetes Operator. 

O princípio é básico, escolhem-se os serviços e definem-se as regras para o jogo (aqui remetendo ao Knockout novamente), e tudo será fornecido da forma mais transparente e eficiente possível, e isto é válido para a instalação, reparação ou eventual restauração, quando isto fugir dos requisitos pré-definidos.  

Mas, o que diferencia o IKO de qualquer outro operador? Como uma extensão da API do Kubernetes (Vamos passar a chama-lo de K8s para abreviar), o componente personalizado IrisCluster, que tem como opções a implantação como cluster bloqueado IRIS, um cluster Caché distribuído ou ainda uma instância anônima. Tudo isto nas mais diversas plataformas disponíveis Kubernetes. Por último, mas, não menos importante, também engloba recursos de gerenciamento de cluster InterSystems, que permitem automatizar algumas tarefas com a adição de nós, outrora, só poderia ser realizado manualmente. 

Tudo isto é muito bonito, fez referência a algum esporte ou jogo, mas, por que eu preciso disto? A resposta é relativamente simples. Eu não preciso do IrisCluster para levar o InterSystems IRIS para o K8s, entretanto, como o K8s é um aplicação independente, seria necessário crias as definições e eventuais scripts para configurar estas instâncias IRIS. Desta forma, o IKO automatiza este processo, facilitando a manutenção. A utilização de contêineres é uma ótima forma de para empacotar esta coleção de atividades que devem acontecer. 

Entretanto, aproveitando a oportunidade, você sabe o que é um contêiner? Uma dica, não é somente o jogo de tabuleiro. 

Container, the Shipping Container Board Game, Imagem 

A resposta está muito mais para o “transporte” de alguma encomenda, pois, ele empacota e isola aplicações e serviços, para que sejam executadas à parte do restante. Facilitando assim o “transporte” de um ambiente para outro, de acordo com a necessidade. 

Aproveitando-se da vasta documentação da InterSystems, abaixo segue o link para a instalação do IKO e subsequentes etapas de configuração e ajustes. 

Para ninguém ficar curioso a respeito do apelido K8s. A origem do nome Kubernetes vem do grego, que significa nada mais, nada menos que pilotou ou timoeiro, enfim, àquele que direciona. E, a quantidade de caracteres entre as letras “K” do início e “S” do fim, é 8. Desta forma, “K8s”. 

Discussion (0)1
Log in or sign up to continue
Article
· May 20 3m read

Un nocaut de peso

Desenho de animal com a boca aberta O conteúdo gerado por IA pode estar incorreto., Imagem 

 

Al igual que un golpe de gracia, sin darle ninguna oportunidad al oponente, Kubernetes, como plataforma de código abierto, tiene un universo de oportunidades debido a su disponibilidad (es decir, la facilidad para encontrar soporte, servicios y herramientas). Es una plataforma que permite gestionar trabajos y servicios en contenedores, lo que simplifica enormemente la configuración y automatización de estos procesos. 

Pero justifiquemos la imagen del título y demos el nombre “correcto” a la herramienta en cuestión: InterSystems Kubernetes Operator. 

El principio es básico, tú eliges los servicios y defines las reglas del juego (aquí refiriéndonos nuevamente a Knockout), y todo se proporcionará de la forma más transparente y eficiente posible, y esto es válido para la instalación, reparación o eventual restauración, cuando esta se desvíe de los requisitos predefinidos. 

Pero ¿qué diferencia a IKO de cualquier otro operador? Como una extensión de la API de Kubernetes (llamémosla K8s para abreviar), el componente personalizado IrisCluster, que tiene las opciones de implementarse como un clúster bloqueado de IRIS, un clúster de Caché distribuido o incluso una instancia anónima. Todo esto en las más diversas plataformas Kubernetes disponibles. Por último, pero no por ello menos importante, también incluye capacidades de gestión de clústeres de InterSystems, que permiten automatizar algunas tareas con la adición de nodos, algo que antes solo se podía hacer manualmente. 

Todo esto está muy bien, hace referencia a algún deporte o juego, pero ¿por qué necesito esto? La respuesta es relativamente sencilla. No necesito IrisCluster para llevar InterSystems IRIS a K8s, sin embargo, como K8s es una aplicación independiente, sería necesario crear las definiciones y los eventuales scripts para configurar estas instancias de IRIS. De esta forma IKO automatiza este proceso, facilitando el mantenimiento. El uso de contenedores es una excelente forma de empaquetar esta colección de actividades que deben realizarse. 

Sin embargo, aprovechando la oportunidad ¿sabes qué es un contenedor? Un consejo: no es sólo el juego de mesa. 

Container, the Shipping Container Board Game, Imagem 

La respuesta tiene mucho más que ver con el “transporte” de algún orden, ya que empaqueta y aísla aplicaciones y servicios, para que puedan ejecutarse por separado del resto. Facilitando así el “transporte” de un entorno a otro, según la necesidad. Aprovechando la extensa documentación de InterSystems, a continuación se muestra el enlace a los pasos de instalación de IKO y su posterior configuración y ajuste. 

Para que nadie tenga curiosidad por el apodo K8s. El origen del nombre Kubernetes proviene del griego, que significa nada más y nada menos que piloto o timonel, en definitiva, el que dirige. Y, el número de caracteres entre las letras “K” al principio y “S” al final, es 8. Por lo tanto, “K8s”. 

23 Comments
Discussion (23)7
Log in or sign up to continue
Announcement
· May 20

Votez pour la meilleure démo ! Les InterSystems Demo Games sont lancés !

Bonjour la communauté,

Nous avons quelque chose de passionnant pour vous : c'est l'heure du nouveau concours de vidéos de démonstration, et cette fois, c'est vous qui êtes juge !

📺 Demo Games pour les InterSystems Sales Engineers 📺

Pour ce concours, les Sales Engineers d'InterSystems du monde entier ont soumis de courtes vidéos de démonstration présentant des cas d'utilisation uniques, des solutions intelligentes et les puissantes fonctionnalités des technologies InterSystems.

À votre tour ! Nous ouvrons le vote à toute la communauté des développeurs. Votre expérience et votre point de vue de développeurs font de vous de parfaits experts.

👉 Comment participer

  • Regardez les démos sur la page du concours
  • Votez pour vos créations préférées (connexion à la communauté des développeurs requise)

🗓 Période du concours

Le vote est ouvert du 26 mai au 31 juillet 2025, et les gagnants seront annoncés peu après.

De nouvelles vidéos seront ajoutées tout au long du concours ; consultez régulièrement la page. Vous pourriez trouver votre préférée à la fin !

✅ Comment voter :

Tous les membres actifs ayant apporté une contribution valable à la Communauté des Développeurs ou à Open Exchange, par exemple en posant ou en répondant à des questions, en rédigeant des articles ou en publiant des applications, peuvent voter. Cela inclut les clients, les partenaires et les employés qui se sont inscrits avec leur adresse e-mail professionnelle.

Pour voter :

  1. Connectez-vous (ou créez un compte) à la Communauté des développeurs
  2. Visitez la page du concours
  3. Sélectionnez vos 3 vidéos préférées et cliquez sur le bouton « Vote » pour chacune d'elles.

🏆 Système de notation :

  • 1er place = 9 points
  • 2e place = 6 points
  • 3e place = 3 points

🔁 Les votes des modérateurs officiels de la communauté* comptent double ; vos meilleurs choix comptent donc vraiment !

* Les modérateurs sont indiqués par un cercle vert autour de leur avatar.


Que les Demo Games commencent – ​​et que la meilleure démo gagne 

Discussion (0)1
Log in or sign up to continue