Announcement
· Jun 27, 2022

Accelerate your IRIS full-stack application development with three new Open Exchange packages (+ a demo)

Hello community,

I'd like to briefly announce three new packages, available on the Open Exchange / through ZPM, that can really help accelerate modern full-stack application development on IRIS. I announced all of these in a Global Summit session last week, but you may have missed it - and I hear there's a full-stack application development contest coming up!

At the heart of this is isc.rest: a continuation of apps-rest with broader use within InterSystems and some new killer features - most notably, OpenAPI spec generation. isc.rest makes enabling REST access to your data easy: extend a class, override a parameter, and specify security for the new REST resource you are thereby creating. This is backed up by isc.json, an authorized fork of IRIS' %JSON package intended to help advance JSON support in IRIS through community feedback.

On the UI side, isc.ipm.js adapts the IRIS package manager to simplify build and deployment of modern web UI alongside server-side code, including driving client code generation based on isc.rest's OpenAPI specs and a new "generate" package manager lifecycle phase. With isc.ipm.js you can publish your package to a private registry (using zpm-registry) and distribute your server-side code and built UI artifacts without needing to rebuild on the client (or commit your build artifacts to source control, because that's gross).

Finally, isc.perf.ui serves as a demo for all of the above - and a handy demo, driving the line-by-line monitor (^%SYS.MONLBL) and providing access to results through a simple Angular UI.

I'll be writing more on these in the coming weeks+ - stay tuned!

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

Hi Tim!

A few questions on isc.rest.

1. What is the format of version:  <Version>1.2.2+snapshot</Version>?  

2. Does it relate to unit tests <Resource Name="/internal/testing/unit_tests/">
          <Attribute Name="Package">UnitTest.isc.rest</Attribute>? 

is it callable by zpm "test isc.rest"? 

3. Lifescycle class - is it mandatory for every package? It looks very complicated what is going on there. Why not use <INVOKE>?

4. Defaults:

What is this for? is it mandatory?

<Defaults>
        <ProcessorDefault Class="Default.Include">
          <Attribute Name="Format">UDL</Attribute>
        </ProcessorDefault>
        <ProcessorDefault Class="Default.Class">
          <Attribute Name="FilenameExtension">cls</Attribute>
          <Attribute Name="Format">UDL</Attribute>
        </ProcessorDefault>
        <ProcessorDefault Class="Default.Package">
          <Attribute Name="FilenameExtension">cls</Attribute>
          <Attribute Name="Format">UDL</Attribute>
        </ProcessorDefault>
        <ProcessorDefault Class="UnitTest">
          <Attribute Name="Format">UDL</Attribute>
        </ProcessorDefault>
      </Defaults>