Pesquisar

Anúncio
· Set. 7, 2024

Top Videos for InterSystems Developers in August 2024

Hey Community,

Here is a digest of the Developer Community videos on InterSystems Developers YouTube Channel in August 2024:

 

Stay tuned with InterSystems Developers YouTube!

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Set. 7, 2024 2min de leitura

Tests unitaires avec VSCode et une version de IRIS antérieure à 2023.3

Introduction

Cet article décrit comment exécuter les tests unitaires lorsque la fonctionnalité intégrée à l'extension InterSystems ObjectScript n'est pas disponible car la version de IRIS utilisée est antérieure à 2023.3.

Au passage, l'extension ne semble pas supporter les tests pour les productions d'interopérabilité (classes qui étendent %UnitTest.TestProduction) , mais c'est seulement lié à la manière de déterminer si la classe comporte une méthode de test. Il suffit d'ajouter une méthode dont le nom commence par 'Test' pour que la classe soit reconnue par l'extension.

Préparation

Le développement et l'exécution des tests unitaires est décrit dans la documentation (Creating Unit Tests | InterSystems IRIS Data Platform 2024.2).
Pour rappel, il est indispensable d'assigner un chemin vers un répertoire de test au global ^UnitTestRoot.

Exécution des tests

L'extension s'intègre à la fonctionnalité "Run & Debug" de VSCode et permet d'exécuter en mode débogage n'importe quelle méthode de classe. Le fichier de configuration .vscode/launch.json contient les configurations de démarrage. 

L'idée est de créer des configurations de démarrage qui exécutent la méthode DebugRunTestCase() de la classe %UnitTest.Manager. Dans le cadre de cet article, nous allons créer plusieurs configurations afin de démarrer l'exécution des méthodes de test : 

  • d'une classe spécifique
  • de la classe dont le nom est sélectionné dans l'éditeur
  • de la classe ouverte dans l'éditeur

Voici ces trois configurations, dans un fichier launch.json complet :

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "objectscript",
      "request": "attach",
      "name": "ObjectScript Attach",
      "processId": "${command:PickProcess}",
      "system": true
    },
    {
      "type": "objectscript",
      "request": "launch",
      "name": "Classe spécifique",
      "program": "##class(%UnitTest.Manager).DebugRunTestCase(\"\",\"test.ut.ks.lib.hl7.UtilsTest\", \"/debug=1/recursive=0\")"
    },
    {
      "type": "objectscript",
      "request": "launch",
      "name": "Classe sélectionnée",
      "program": "##class(%UnitTest.Manager).DebugRunTestCase(\"\",\"${selectedText}\", \"/debug=1/recursive=0\")"
    },
    {
      "type": "objectscript",
      "request": "launch",
      "name": "Classe ouverte",
      "program": "##class(%UnitTest.Manager).DebugRunTestCase(\"\", $replace($replace($replace(\"${relativeFile}\",\"src\\\",\"\"),\".cls\",\"\"),\"\\\",\".\"), \"/debug=1/recursive=0\")"
    }
  ]
}

Pour éditer le fichier launch.json, cliquez sur l'icône 'launch & debug' et le bouton 'settings' :

 
Une fois les configurations ajoutées dans launch.json, elle peuvent être exécutée en sélectionnant la configuration souhaitée et en cliquant sur l'icône de démarrage :

 

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Set. 6, 2024 3min de leitura

第十八章 添加时间戳和用户名令牌

第十八章 添加时间戳和用户名令牌

本主题讨论时间戳和用户令牌。

概述

时间戳是 WS-Security 标头中的 <Timestamp> 安全元素。严格来说,时间戳不是安全元素。但是,可以使用它来避免重放攻击。时间戳对于自定义日志记录也很有用。

用户名令牌是 WS-Security 标头中的 <UsernameToken> 安全元素;它带有用户名。它还可以带有相应的密码(可选为摘要形式)。通常使用它进行身份验证,即允许 IRIS Web 客户端使用需要密码的 Web 服务。

注意:默认情况下,WS-Security 标头元素以明文形式发送。要保护 <UsernameToken> 中的密码,应该使用 SSL/TLS、加密 <UsernameToken>(如其他地方所述),或者使用这些技术的某种组合。

Discussão (0)1
Entre ou crie uma conta para continuar
Anúncio
· Set. 6, 2024

New InterSystems Reports Designer videos available

I am excited to share that the Learning Services team has recently added new content to our InterSystems Reports Learning Path. These latest videos, created by our partner, insightsoftware, provide instruction for developing reports with InterSystems Report Designer.

In these three short videos, you’ll learn how to:

  • Get Started with Report Designer: An orientation that walks you through creating a Banded Report.
  • Add Formulas to Reports: Learn how to incorporate formulas into your existing reports.
  • Preview and Export Reports: Explore the differences between page and web reports, along with various export formats.

Head over to the InterSystems Reports Learning Path to check them out and enhance your reporting skills today!

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Set. 6, 2024 2min de leitura

WebTerminal não funciona no IRIS 2024.2

Incluo esse post para ajudar os usuários de WebTerminal que atualizaram à versão IRIS 2024.2 -- (Build 247U) Tue Jul 16 2024 09:52:30 EDT -- liberada recentemente, ou estão considerando fazê-lo.

Essa versão 2024.2 contém uma mudança (DP-432503) que precisa que o usuário através do qual se conecta inicialmente ao Web Gateway (normalmente CSPSystem) deva ter permissões de leitura (READ) sobre a base de dados em que se encontra a classe de dispatching da aplicação web de tipo REST.

Para os casos em que não for assim, se gera um erro, mas retorna um estado HTTP 404 a quem faz a requisição no lugar do esperado HTTP 401

A princípio o problema será solucionado na 2024.3, referência DP-432898 / ALI048 : REST Login endpoints to return 401 HTTP error instead of 404, mas, ao ser a versão 2024.2 uma versão de tipo Continuous Delivery (CD), não se incluirá esta correção.

Um workaround possível é adaptar CSPSystem para que tenha permissão de leitura (READ) sobre a base de dados o namespace  em que está instalado o WebTerminal (ej. WEBTERMINAL).

Eu fiz assim:

  1. Crie um novo recurso de segurança %DB_WEBTERMINAL e atribuir à base de dados WEBTERMINAL no lugar de %DB_%DEFAULT.
  2. Crie um role %DB_WEBTERMINAL que outorgue ao dono do role de acesso RW ao recurso %DB_WEBTERMINAL.
  3. Crie outro role (eu o chamei de DBread_WEBTERMINAL) que dá ao dono do role acesso de somente leitura a esse recurso.
  4. Dê ao usuário CSPSystem o role DBread_WEBTERMINAL. Isto permite separar o bug da 2024.2.
  5. Edite a aplicação web /terminalsocket e adicione o role %DB_WEBTERMINAL no arquivo de Roles de Aplicação. Este passo é necessário porque WebTerminal inicialmente executa seu processo de websocket como UnknownUser e necessita modificar a informação de estado em sua base de dados incluso antes de que mude a executar como um usuário autenticado.

Uma técnica mais simples, mas menos segura seria:

  1. Crie um novo recurso %DB_WEBTERMINAL com privilégios RW, e atribua a base de dados WEBTERMINAL para que o use no lugar de %DB_%DEFAULT.

Mais detalhes em https://github.com/intersystems-community/webterminal/issues/155

Discussão (0)1
Entre ou crie uma conta para continuar