发布新帖

検索

公告
· 9 hr 前

开发者社区中文版:每月摘要(2026年1月)

您好,欢迎了解2026年1月开发者社区摘要。
统计信息
✓ 一月发布了 23 篇新帖子:
 13篇新文章
 9个新公告
 1个新问题
✓ 一月有 16 位新成员加入
✓ 截至目前发布了 2,486 篇帖子
✓ 截至目前有 2,362 位成员加入
最高阅读
本月最佳作家
文章
#InterSystems IRIS
 
#InterSystems IRIS for Health
 
#其他​​​
 
公告
问题
#Caché
 
一月, 2026Month at a GlanceInterSystems Developer Community
讨论 (0)1
登录或注册以继续
公告
· 10 hr 前

InterSystems Open Exchange Applications Digest, January 2026

Hello and welcome to the January 2026 Open Exchange Recap.
General Stats:
11 new apps in January
557 downloads in January
1,192 applications all time
45,493 downloads all time
3,525 developers joined
New Applications
IRIS OpenTelemetry Demo
By Qiyuan Yin
iris-health-fhir-agentic-demo
By Alberto Fuentes
FHIR-AI-Hackathon-Kit
By Gabriel Ing
json2class
By Luis Angel Pérez Ramos
IRIS_dockerization
By Jorge Ivan Jaramillo Herrera
OAuth2 Native Authentication for Web Applications
By Ariel Glikman
one-to-many-case
By Evgeny Shvarov
swagger-request-validator
By Andrew Sklyarov
clouddoc-demo-docker
By Netanel Frankel
dc-mais
By Henry Pereira
CSV-to-MS-OFX
By Robert Cemper
New Releases
dc-toon by Henry Pereira
v1.0.1
Set the publishing manager (which I forgot to do earlier).
v1.0.2
Description:This pull request introduces critical improvements to the dc.toon.Converter class, enhancing its ability to accurately handle data types during both JSON-to-TOON and TOON-to-JSON conversion. Key Changes:1. Full Datatype Support in JSON \rightarrow TOON Conversion: Adds proper handling for various JSON data types (e.g., Boolean true/false) during conversion into the TOON format. Before: Boolean values in JSON arrays were incorrectly converted or lost fidelity (e.g., true might become 1). After: Boolean values are preserved correctly in the TOON output, matching the original data structure. Example: {"age":true} is now correctly represented in TOON, not as a numeric equivalent. Datatype Fidelity in TOON \rightarrow JSON Conversion: The FromTOON method now ensures that data types are accurately restored when converting TOON back into JSON (Dynamic Object).
Fixes:
Boolean strings ("true", "false") in TOON are now converted to JSON Booleans (true, false) instead of numerics (1, 0) or strings.
"null" strings in TOON are now converted to the proper JSON null value instead of an empty string ("").
Example: TOON isactive:true \rightarrow JSON "isactive":true (instead of "isactive":1).
Bug Fix in Quoted String Parsing: Fixed a syntax error/logic gap in the quoted string check within the parser. The conditional statement for identifying a quoted string (If $Extract(str,1)="""" && ($Extract(str,*)="""")) was missing necessary parentheses or required refinement to ensure correct execution flow

Special thanks to @Ashok Kumar
iris-user-management by Evgeny Shvarov
v1.0.2
bugfix for error-logging
v1.0.3
Added database parameter so it can be used not only for the USER database. zpm "shvarov-user-management -D db=YOURDB"
Embedded Git by Pravin Barton
v2.15.0

[2.15.0] - 2026-01-06

Added

  • Import All has been added to public-facing API (#891)
  • Web UI workspace view now has an option to abort merge in progress (#895)
  • New setting lets you treat generated classes as read-only in Studio/VS Code (#712)

Fixed

  • Web UI workspace view labels changes as Merge Conflict if there are unmerged changes (#890)
  • Web UI workspace view displays diff correctly for files with merge conflicts (#898)
  • Storage definition changes in persistent classes are now correctly exported to the Git repository (#906)
  • Catch and log exceptions thrown by pull handlers (#909)
  • Fix Incremental Load to first remove production items before removing classes (#907)
iris-vector-search by Fan Ji
v1.2.0
Vector Search with InterSystems IRIS 2025.3
irisJWT by Ashok Kumar T
v1.0.1
code updates
lovable-backend by Evgeny Shvarov
v1.0.2
REST API Unit tests added
JSON2Persistent by Michael Braam
v1.0.6
Added support for IPM
v1.0.7
corrected release number
Tutorial-QUERY by Robert Cemper
v0.0.2
archive repo update articles + video
IRIS-fast-ECP-setup by Robert Cemper
v0.1.7
moved to archive
CPIPE by Robert Cemper
v1.1.4
archived
DBfree by Robert Cemper
v0.0.3
archived
WebCommand by Robert Cemper
v0.0.6
arachived
GlobalToJSON-XLA by Robert Cemper
v0.0.7
archived
v0.0.8
archived
zpmshw by Robert Cemper
v1.0.4
archived
ZPretty by Robert Cemper
v1.1.3
archived
zpm-registry by Evgeny Shvarov
v1.3.4
Fix <Invoke> by having method return %Status
csvgen-python by Evgeny Shvarov
v1.2.6
Added error handling to Generate() method
Most downloaded
ObjectScript-Math
By Peter Steiwer
MDX2JSON
By Eduard Lebedyuk
DeepSeeWeb
By Anton Gnibeda
Intersystems-Monitoring
By Teunis Stolker
Test Coverage Tool
By Timothy Leavitt
iris-web-swagger-ui
By Semion Makarov
zpm-registry
By Evgeny Shvarov
yaml-utils
By Benjamin De Boe
WebTerminal
By Nikita Savchenko
January, 2026Month at a GlanceInterSystems Open Exchange
讨论 (0)1
登录或注册以继续
文章
· 12 hr 前 阅读大约需 12 分钟

Envio de Correo desde IRIS con Gmail y Autenticación XOAuth2

Desde IRIS 2024, InterSystems IRIS soporta el protocolo XOAuth2, una extensión a OAuth2 que permite autenticación con OAuth2 para enviar y recibir mensajes de email. Google Mail y Google Workspace (el uso empresarial del mail de google con una dirección de empresa) requieren el uso de XOAuth2 si se desea integrar las funciones de correo desde una aplicación externa. 

En este ejemplo, me centraré en una aplicación IRIS que usa el Gmail empresarial para el envio de correos. El ejemplo cubre todo el circuito desde:

  • La creación de la cuenta google y su configuración para permitir acceso con OAuth2 desde una aplicación externa (IRIS).
  • La configuración del cliente OAuth2 en el portal de gestión de IRIS
  • Como Autorizar la aplicación Cliente en IRIS para el acceso a Gmail, y como obtener un token de refresco permanente.
  • El codigo y la prueba de envio de correo desde IRIS.
  • Las pruebas de validación

Como Pre-requisitos para seguir este ejemplo, son necesarios también:

  • Un nombre de dominio. Este sirve como dirección de correo de la empresa en google mail. Para este ejemplo, se ha reservado "mi-empresa.es" en el Registro de "godaddy.com".
  • Un servidor para IRIS que este accesible desde Internet via https (requiere generar e instalar un certificado SSL/TLS en el servidor Web). Esto es necesario para completar la autenticación OAuth con google en al URL "/csp/sys/oauth2". Para el servidor IRIS, utilizo otro dominio "scalable-iot.com", para que el lector pueda diferencia fácilmente las URLs del Servidor OAuth de  Google de las URLS del cliente OAuth en IRIS, pero se podría usar el mismo dominio para Google Workspace y el servidor IRIS.  Aquí, he configurado el DNS para acceder a IRIS con "https://iris.scalable-iot.com".

Por otra parte, se recomienda tener ya conocimientos genéricos de OAuth y es útil revisar como se configura OAuth en IRIS. Aquí algunas referencias en el community y un workshop del OpenExchange que cubren este tema:

https://es.community.intersystems.com/post/aprende-utilizar-oauth2-openid-connect-en-intersystems-iris-de-forma-sencilla

https://openexchange.intersystems.com/package/workshop-iris-oauth2

 

Flujo de Autenticación: Authorization Code

OAuth permite distintos flujos de Autenticación. En este ejemplo, el flujo que se requiere el "Authorization Code" que permite a cada usuario de IRIS dar autorización a IRIS a acceder a su cuenta de correo propia en gmail. Esta autorización se realiza por paginas Web en IRIS, que redirigen a la pagina de OAuth de google para que el usuario haga allí su login, y devuelva un token permanente (refresh token) que se guarda en IRIS. En cada envio de correo posterior desde IRIS, el refresh token, permite obtener un token para hacer la llamada al la API de gmail.

 

Para recordatorio, aqui el flujo de Autorización Inicial:

 

A la hora de enviar un correo por XOAuth2, el flujo queda como sique:

 

Requisitos

Una parte importante de esta configuración consistente en tener la cuenta de gmail corporativo  establecida y configurada, así como el servidor de IRIS instalado y accessible por nombre DNS y con certificado instalado. 

Voy a empezar con estos requisitos paso a paso.

Creació de Cuenta Google Workspace

Voy a https://mail.google.com, y selecciono "create an account" y "for work or my business".  Es una cuenta que podré usar para pruebas y cancelar antes de 15 días para evitar cobros.
Google me propone probar google workspace:

 

Aqui selecciono nombre de la empresa "mi-empresa.es", y seleccionamos 2 a 9 empleados, así podremos validar el caso de multiples usuario que envien correos de iris si necesario.

A continuación, google  pide mi información de contacto actual:

Despues pregunta si ya tengo un nombre de dominio registrado (si):

Y lo Pongo a continuación:

Despues me pide un usuario y un password para google workspace

usuario administracion@mi-empresa.es

Y despues cambio el plan a Business Starter, para tener un coste reducido por usuario (pero lo voy a cancelar antes de finalizar el periodo de prueba).

Para finalizar, despues de introducir información de pago, es necesario validar el dominio (con una entrada de DNS de tipo .TXT record o CNAME record), e finalmente añadir la entrada de MX record de google en el servidor de DNS configurado (hemos mantenido el DNS en el servidor de dominio godaddy en este caso).

Con estos pasos, tengo Una cuenta de correo de negocio "administracion@mi-empresa.es" configurada. Puedo poner "mail.google.com" en un navegador, hacer el login, y ya tengo acceso a correo.

Es muy recomendable añadir el login "2-Factores" a esta cuenta, ya que se le añade información de facturación a lo largo de las pruebas.

 

Instalación de IRIS

He Documentado la instalación de IRIS Community Edition en un servidor AWS  en el Anexo.

Una vez instalado, se ha definido la configuración SSL de cliente con el nombre "SSLDefault".

Configuración OAuth2.0 en Google Workspace

Lo Pasos ya realizados en google son:

  • creación de 1 cuenta de Workspace, con un dominio propio "mi-empresa.es"
  • creación de 1 usuario en Google workspace, con la cuenta "administracion@mi-empresa.es"

Los Pasos a realizar en este apartado son los siguientes

  1. Definir, desde la consola del desarrollador de Google (google developer console) , un proyecto, y definir la pantalla de consentimiento OAuth.
    • Esta pantalla servira a cada usuario de Google WorkSpace para que autorice a IRIS acceder a su cuenta con unos privilegios (scope) específicos
  2. Validar el dominio DNS donde reside el servidor IRIS (iris.scalable-iot.com)
  3. Crear la definición del Cliente OAuth en la consola google developer.

La Interfaz de usuario de Google cambia de vez en cuando, y las pantallas pueden ser distintas a las presentadas a continuación, pero la finalidad es la misma: habilitar OAuth y registrar el servidor de IRIS para que sea un cliente autorizado para el proyecto. En este ejemplo, as escojer una aplicación "interna" solo accesible a los usuarios de la organización, las tareas de validación en del developer console están simplificadas.

Google Developer Console

Permitir el acceso al gmail  del Google Workspace desde aplicaciones externas se hace desde el Google Developer Console:

URL https://console.developers.google.com
Usuario administracion@mi-empresa.es

 

Definir un Proyecto

Es necesario crear un nuevo Proyecto, que nombro "EnviarCorreo":

 

Se Habilita la API de correos para este proyecto, desde "Api and Services", seleccionando "Gmail API" y "Enable".

 

En este nuevo proyecto, se define la pantalla de consentimiento OAuth (desde el menu "API & Services" / "OAuth consent screen").  Google nos propone un wizard en varios pasos, que relleno con:

Parametro valor
App Name irismail
User support email administracion@mi-empresa.es
Audience internal

Paso 1:

Paso 2:

Paso 3:

Y Finalizar.

 

Especificar el Dominio y los scopes

Despues es necesario añadir los Dominios autorizados. Para ellos, se usa el menu "Branding" para acceder a "Authorized Domains" y añadir el dominio desde donde la aplicación Cliente IRIS hace la autenticación (scalable-iot.com).

 

 

Hace falta definir los "scopes" de OAuth para la aplicación. La Pantalla de "Data Access" nos permite añadir los scopes necesarios:

Se mantienen los 3 scopes propuestos por defecto: "email", "profile", "openid", a se añade 

"https://mail.google.com/", para permitir el envio de correo desde IRIS. En teoria, para solo enviar correos, el scope de "https://www.googleapis.com/auth/gmail.send" deberia ser suficiente, pero Google lo rechaza y pide en scope más completo.

La Documentación de google tiene una lista completa de scopes aquí:

https://developers.google.com/identity/protocols/oauth2/scopes

 

Con esto, ya se puede crear la definición de cliente OAuth en google.

Añadir la definición de cliente

En el apartado "Clients", se puede hacer click sobre "Create Client" para generar la definición de cliente. El resultado de esta etapa es que google me proporciona un ClientID y un ClientSecret que podré usar desde IRIS, para hacer la authenticación por OAuth de los usuarios.

Se seleccionan los siguientes valores

Parametro Valor detalles
Application type Web Application determina el flujo de OAuth
Name irismail un nombre arbitrario para este cliente IRIS 
Authorized JavaScript Origins https://iris.scalable-iot.com El DNS del cliente IRIS
Authorized Redirect URLs

https://iris.scalable-iot.com/csp/sys/oauth2/OAuth2.Response.cls

https://iris.scalable-iot.com/csp/user/Mail-OAuth2.Allow2.cls

Las paginas Web de redirección para OAuth.
Notar que la segunda pagina esta en el namespace "USER" bajo la aplicación Web "/csp/user". Se puede modificar.

Y se acaba con el botón "create". La Validación puede tardar desde algunos minutos a varias horas.

Al volver a esta pantalla, puedo ver el ClientID y el ClientSecret generados. Son necesarios para establecer la conexión desde IRIS:

Client ID XXXXXXXX.apps.googleusercontent.com
Client Secret GOCSPX--XXXYYYYZZZ

 

Configuración IRIS como cliente OAuth2 

Ahora que el servidor de de Autenticación de OAuth esta configurado con la definición de un cliente añadida, se puede definir IRIS como cliente de OAuth para permitir que se connecte con este "ClientID" y "Client Secret". Esta definición se hace desde el portal de Gestión, configurando IRIS como Cliente OAuth.

"System Administration" / "Security" / "OAuth 2.0" / "Client"

Y se hace click sobre "Create Server Description" para añadir los detalles del Servidor OAuth de google al cual IRIS se tiene que connectar:

 

El botón "Discover and Save" no permite automatizar la tarea, hay que usar el botón "Manual" y rellenar los detalles de la configuración, según los valores de la pagina de configuración OpenId:

OpenID Configuration Details Page https://accounts.google.com/.well-known/openid-configuration

Los valores siguientes se definen en IRIS:

Endpoint valor
Issuer EndPoint https://accounts.google.com/o/oauth2/auth
SSL/TLS Configuration SSLDefault
Authorization Endpoint https://accounts.google.com/o/oauth2/v2/auth
Token Endpoint
https://oauth2.googleapis.com/token
UserInfo Endpoint
https://openidconnect.googleapis.com/v1/userinfo
Token Revocation Endpoint
https://oauth2.googleapis.com/revoke

 

Aquí una copia de pantalla del resultado:

Despues de grabar esta configuración, se puede seleccionar esta fila y añadir la definición del cliente OAuth para el servidor "https//acounts.google.com/o/oauth2/auth", con el botón "Create Client Configuration":

 

Para finalizar esta definición, es necesario copiar el "ClientID" y "Client Secret" en la pestaña correspondiente del portal de gestión:

 

Autorización Interactiva de Cliente OAuth2

Con toda la configuración anterior, IRIS necesita obtener un token de acceso OAuth2 (Google le asigna un tiempo de expiración de 1 hora) y un token de actualización permanente para cada usuario que quiere acceder a su correo desde IRIS. El flujo de trabajo de OAuth2 requiere que el usuario inicie sesión en Google y acepte la operación. Para ello, el usuario tiene que ejecutar una Aplicación Web CSP en IRIS. La aplicación consta de 2 páginas CSP que se instalan en en namespace "USER", y accesibles con la aplicación Web de IRIS "/csp/user".

Se usa el flujo Authorization code para para asociar a cada usuario de IRIS ($username) una cuenta de correos en gmail, y su token de OAuth2.

A continuación el detalle del codigo de esta paginas Web de IRIS:

Creación de Paginas Web para OAuth2

Pagina Inicial:

Class Mail.OAuth2.Allow Extends %CSP.Page
{

Parameter OAUTH2CLIENTREDIRECTURI = "https://iris.scalable-iot.com/csp/user/Mail.OAuth2.Allow2.cls";

/// This Reference the OAuth2 Client App Defined in IRIS Mgmt Portal
Parameter OAUTH2APPNAME = "irismail";


ClassMethod OnPage() As %Status
{
  /// We associate the UserName with a Token for OAuth
  #define SESSIONID $USERNAME

  &html<<!DOCTYPE html>
<head>
</head>
<body style="text-align: center;">
<!-- insert the page content here -->
    <h1>Configure OAuth Client for Google Mail</h1>
        <br>Click on the Google Sign In<br>
        <p>This page demo shows how to call Google API functions using OAuth2 authorization.
      >
        
///PYD: Scopes listed in the google config page
   set scope="https://www.googleapis.com/auth/gmail.send"
  

   set properties("approval_prompt")="force"   //Also needed to get a Refresh_token
   set properties("include_granted_scopes")="true"
   set properties("access_type")="offline"   //Force a refresh_token to be returned
  
   set url=##class(%SYS.OAuth2.Authorization).GetAuthorizationCodeEndpoint(..#OAUTH2APPNAME,scope,
     ..#OAUTH2CLIENTREDIRECTURI,.properties,.isAuthorized,.sc,,$$$SESSIONID)
  
   //---
   write !,"<p><a href='"_url_"'>Google Sign In</a>" //<img border='0' alt='Google Sign In' src='images/google-signin-button.png' >

 &html<</body></html>>
  
   Quit $$$OK
}

}

Pagina de Finalización:

Class Mail.OAuth2.Allow2 Extends %CSP.Page
{

Parameter OAUTH2APPNAME = "irismail";

Parameter OAUTH2CLIENTREDIRECTURI = "https://iris.scalable-iot.com/csp/user/Mail.OAuth2.Allow2.cls";



ClassMethod OnPage() As %Status
{
  /// We associate the UserName with a Token for OAuth
  #define SESSIONID $USERNAME 

   &html<<!DOCTYPE html>
    <head></head>
    <body>>
    // Check if we have an access token
  set scope="https://mail.google.com/"
  set redirectURL="https://iris.scalable-iot.com/csp/sys/oauth2/OAuth2.Response.cls"
  
 $$$THROWONERROR(sc,##class(%SYS.OAuth2.Authorization).GetAccessTokenAuthorizationCode(..#OAUTH2APPNAME,scope,redirectURL,.properties,"query",$$$SESSIONID))
  
 if (sc=$$$OK) {
   Write "<H1>Registered Successfully</H1>"
   }else {
   Write "Process Failed<br>",!
 Write "Status code:" do $SYSTEM.Status.DisplayError(sc) write !
   }
       
   &html<</body></html>>
 
  Quit $$$OK
}
}

 

Autenticación Web de un usuario

Ahora, todo esta listo para que usuario de IRIS se autentique en Google, y autorize la aplicación de IRIS a acceder a la API de correos google mail en su nombre.

Se hace accediendo a la pagina Web:

https://iris.scalable-iot.com/csp/user/Mail.OAuth2.Allow.cls

La Paginas 

Al Inicial sesión en google, google advierte de los privilegios (Scopes) que la aplicación pide usar. En este caso, el scope esta limitado al envio de correos:

Al finalizar, se muestra la pagina de resultados

 

En este momento, se ha registrado un token y un refresh token para la app "irismail" y el usuario de iris que haya hecho el login al acceder a la página "/csp/user/Mail.OAuth2.Allow.cls". Se puede validar el contenido (verificando que para esta app y usuario haya una fila con un refresh_token) en el namespace "%SYS":

SELECT * FROM OAuth2.AccessToken

 

Aplicación mail con XOAuth

 

Para enviar el correo se usa la clase %Net.SMTP  y se hace la autenticación con la clase %Net.SASL.XOAuth2 como sigue:

Class Mail.Envio Extends %RegisteredObject
{

ClassMethod Test() As %Status
{
    #DIM tSC as %Status=$$$OK
    #DIM errObj as %Exception.AbstractException
    try {
    #DIM tUsername
    #DIM tOAuth2ClientName
    #DIM tOAuth2SessionId
    set tUsername="administracion@mi-empresa.es"   //The Username For OAuth2.0 Authentication. Same as "From" sender
    set tOAuth2ClientName="irismail"   //The OAuth2 Client Application Name in the IRIS Portal.
    set tOAuth2SessionId=$USERNAME   //The SessionId used when registering the OAuth Token in the Web UI
    set tScope="https://mail.google.com/"

    #DIM smtp as %Net.SMTP=##class(%Net.SMTP).%New()
    #DIM m as %Net.MailMessage

    set smtp.smtpserver="smtp.gmail.com"  //smtp-relay.gmail.com would allow up to 10 000 mails/day
    set smtp.port=587
    set smtp.SSLConfiguration="SSLDefault"
    set smtp.UseSTARTTLS=1

    //Get the User's Access Token
     set isOK=##class(%SYS.OAuth2.AccessToken).IsAuthorized(tOAuth2ClientName,tOAuth2SessionId,tScope,.tAccessToken,.tIDToken,.tResponseProperties,.tError)
    if (isOK=0) {
            Write "ERROR: [%Net.SASL.XOAUTH2:Start","applicationName="_tOAuth2ClientName_", SessionId="_tOAuth2SessionId_", scope="_tScope_" Error:"_tError,!
            return 0
    }
    set auth=##class(%Net.Authenticator).%New() ;use default authentication list
    set auth.MechanismList="XOAUTH2:%Net.SASL.XOAUTH2"

    set auth.UserName=tUsername
    set auth.AccessToken=tAccessToken
    Write "Auth AccessToken: ",auth.AccessToken,!
   
    set smtp.authenticator=auth

    set m=##class(%Net.MailMessage).%New()
    set m.From=tUsername
    do m.To.Insert("PierreYves.Duquesnoy@gmail.com")
    set m.Subject="Sent by IRIS, testing XOAUTH2"
    set m.Charset="iso-8859-1"
    do m.TextData.Write("This is the email body")

    $$$THROWONERROR(tSC,smtp.Send(m))

    }catch (errObj) {
        set tSC=errObj.AsStatus()
        Write "CATCH: ",errObj.DisplayString(),!
    }
    quit tSC
}

/// Send an Email using %Net SMTP an XOAUTH2

}
讨论 (0)1
登录或注册以继续
摘要
· 13 hr 前

Publicações Desenvolvedores InterSystems, Janeiro 26 - Fevereiro 01, 2026, Resumo

Janeiro 26 - Fevereiro 01, 2026Week at a GlanceInterSystems Developer Community
公告
· 14 hr 前

Technology Bonuses for InterSystems Full Stack Programming Contest 2026

Here are the technology bonuses for the InterSystems Full Stack Contest 2026, which will give you extra points in the voting:

  • IRIS Vector Search usage -3
  • InterSystems Native SDK for Python or Embedded Python usage -3
  • Developer Community Idea implemented - 2
  • Docker container usage -2 
  • IPM Package Deployment - 2
  • Online Demo -2 
  • Find and report a bug - 2
  • Article on Developer Community - 2
  • The second article on Developer Community - 1
  • Video on YouTube - 3
  • YouTube Short - 1
  • First Time Contribution - 3

See the details below.<--break->

<--break-><--break->IRIS Vector Search - 3 points

Starting from 2024.1 release InterSystems IRIS contains a new technology vector search that allows to build vectors over InterSystems IRIS data and perform search of already indexed vectors. Use it in your solution and collect 5 bonus points. Here is the demo project that leverages it.

InterSystems Native SDK for Python or Embedded Python - 3 points

Use InterSystems Native SDK for Python or Embedded Python in your application and collect 3 extra points. You'll need at least InterSystems IRIS 2021.2 for it.

Developer Community Idea implemented - 2 points

In this contest, we aim to encourage the implementation of ideas with Community Opportunity status and related to the Full Stack contest topic.

Docker container usage - 2 points

The application gets a 'Docker container' bonus if it uses InterSystems IRIS  running in a Docker container. Here is the simplest template to start from.

IPM Package deployment - 2 points

You can collect the bonus if you build and publish the IPM(InterSystems Package Manager) package for your Full-Stack application so it could be deployed with:

zpm "install your-multi-model-solution"

command on IRIS with IPM client installed. 

IPM client. Documentation.

Online Demo of your project - 2 points
Collect bonus points if you provision your project to the cloud as an online demo.

Find and report a bug  - 2 points
Sometimes, while building your solution with InterSystems IRIS or other InterSystems products or tools, you can come across a bug. It's a pity, but it happens. Please, submit it via a new type of request at the Ideas portal, as described here, and collect 2 bonus points. Only one bug submission counts. 

Article on Developer Community - 2 points

Write a brand new article on Developer Community that describes the features of your project and how to work with it. Collect 2 points for the article. 
*This bonus is subject to the discretion of the experts whose decision is final. 

The Second article on Developer Community - 1 point

You can collect one more bonus point for the second article or the translation of the first article. The second article should go into detail about a feature of your project. The 3rd and more articles will not bring more points, but the attention will be all yours. 
*This bonus is subject to the discretion of the experts whose decision is final.

Video on YouTube - 3 points

Make the Youtube video that demonstrates your product in action and collect 3 bonus points per each (maximum of 3 videos). Examples.

YouTube Short - 1 point

Make a YouTube Short demonstrating your product in action and collect 1 bonus point each (maximum of 3 shorts).

First-Time Contribution - 3 points

Collect 3 bonus points if you participate in InterSystems Open Exchange contests for the first time!

The list of bonuses is subject to change. Stay tuned!

Good luck with the competition!

讨论 (0)1
登录或注册以继续