When you first start working with InterSystems IRIS, it’s a common practice to install a system with only a minimum level of security. You have to enter passwords fewer times and this makes it easier to work with development services and web applications when you're first getting acquainted. And, sometimes, minimal security is more convenient for deploying a developed project or solution.
And yet there comes a moment when you need to move your project out of development, into an Internet environment that’s very likely hostile, and it needs to be tested with the maximum security settings (that is, completely locked down) before being deployed to production. And that’s what we’ll discuss in this article.
For more complete coverage of DBMS security issues in InterSystems Caché, Ensemble, and IRIS, you may want to read my other article, Recommendations on installing the InterSystems Caché DBMS for a production environment.
The security system in InterSystems IRIS is based on the concept of applying different security settings for different categories: users, roles, services, resources, privileges, and applications.

Users can be assigned roles. Users and roles can have privileges on resources — databases, services, and applications — with varying read, write, and use rights. Users and roles can also have SQL privileges on the SQL tables located in databases.

5 2
3 1K
Question
· Jun 2, 2020
Node.js fails to open database

Hi,

My attempt to run a node.js command fails at the open command with a "Error loading Cache Library: C:/InterSystems/Cache2018/bin/cache.dll; Error Code 126 (The specified module could not be found.)" result. I can't argue with the error message as the cache.dll file doesn't exist. Apparently I missed an installation step. Could somebody point out what it might be please.

Version: Node.js Adaptor for Cache: Version: 1.1.136a (ABI=48)


Cache for Windows (x86-64) 2018.1.4 (Build 504) Thu May 14 2020 14:31:34 EDT

0 2
0 320

Hello,

We are wondering how could we iterate over a segments list,

The use case is that we are sending from Process X to process Y a message, only if at the OBR4 CE1 there is a certain code. We were getting this field as follows:

set context.studyReason = request.GetValueAt("ORCgrp(1).OBRuniongrp.OBRunion.OBR:UniversalServiceIdentifier.Identifier")

How could we iterate over the following message and get both OBR4 CE1 (1 and 2):

0 2
0 734

In this article, we will explore the development of an IRIS client for consuming RESTful API services that have been developed to the OData API standard.

We will be exploring a number of built-in IRIS libraries for making HTTP requests, reading and writing to JSON payloads, and seeing how we can use them in combination to build a generic client adaptor for OData. We will also explore the new JSON adapter for deserializing JSON into persistent objects.

4 3
3 1.1K

I am using the Java Binding to connect a Java Middleware Application to Cache. Originally I was using a CacheListOfDataTypes (JAVATYPE = "java.lang.List") object to bring data back. I was tasked with encrypting the data using AES and I was using the AESCBCEncrypt function on the List elements (up to 20k characters for each element) to bring it back before concatenating it on the middleware. This almost worked. Like 95% of the characters were being decrypted correctly but some text was coming back garbled. I couldn't understand how this was happening.

0 3
1 509

Hi All,

So after finally getting cache to install (by enabling root user and disabling the gatekeeper) it tells me that it has started with one alert... that is "Private web server has not started after 5 seconds." - urgh!

Obviously i need access to the management portal to continue setup, I've done lots of googling but i cant find anything on this, does anyone have any ideas?

Many thanks,

Dan

0 10
0 583

Hi ObjectScript developers!

How to Protect Your Belongings from Pests While Moving - Delicate ...

InterSystems ObjectScript is perhaps the best language on the planet to deal with globals - and it is an interpretable language.

Yes, it has a compiler. But even the compiler can compile some lines in ObjectScript which will then fire as bugs during the runtime.

There are some technics on how to avoid that such as unit testing, coding guidelines and your coding experience, of course ;)

Here I want to present to you the yet another approach to how you can reduce the number of errors in your ObjectScript runtime and enforce coding guidelines - it's an ObjectScript Quality tool developed by Lite Solutions, InterSystems solution partner.

See the details below.

4 0
0 450
Question
· May 24, 2020
calling AIX command failed

I can run the following commands from the AIX command line prompt without any problem

-bash-2.05b$ echo t
t
-bash-2.05b$ echo œ
œ

When I call from insider cache, I have problem.

USER>D $ZF(-1,"echo t")
t

USER>D $ZF(-1,"echo œ")

D $ZF(-1,"echo œ")
^
<TRANSLATE>

I am using cache 2017.2. Can someone shed some light?

Thank you.

0 5
0 238

Hi All,

It must be the groundhog days but I can't solve something that I know I've done before. I have a legacy CSP page on a version of Cache without JSON and just pure Cache.

I need a CSP page that takes a .xlsx file, manipulates the file (in COS) and then returns a new manipulated file.

My CSP Page gets the file fine, the problem is then returning the response with the new file as an attachment. I don't want to pipe to a new csp page with a different content-type so was sure I can set %response.Headers etc to get the reply stream I want.

0 6
0 814
Question
· Apr 28, 2020
Git plugin for Cache Studio

Has anyone recently deployed the cache-git-studio plugin from Github repo?

In particular, I see that this plugin is installed at the namespace level, so it appears for each user have their commits in their own name, they must all be running a locally installed cache server when doing their dev work. I suspect that is the preferred way.

In my organization they are currently just accessing a remote cache server from Studio. In that scenario, it looks like it would be one installation of git for the whole team. and thus only one shared git user.

0 3
0 609

Hi community,

I need to write an SQL query to fetch a random record from a table, that table has millions of data.

In postgresql, for example, there is a RANDOM() function to do something like that:

SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1

Is it possible to do something like that in Caché?

Thanks in advance

0 8
0 802

The Caché System Management Portal includes a robust web-based SQL query tool, but for some applications it’s more convenient to use a dedicated SQL client installed on a user’s PC.

SQuirreL SQL is a well known open source SQL client built in Java, which uses JDBC to connect to a DBMS. As such, we can configure SQuirreL to connect to Caché using the Caché JDBC driver.

9 11
1 10.8K

InterSystems has corrected two defects that affect online backup of very large databases. Backups taken via external methods, such as snapshots or direct file copies, are not affected. These defects exist in all released versions of all InterSystems products.

2 0
0 246

Hello,

We are trying to connect to a database through a JavaGateway.

We observe that the JavaGateway reports:

Failed to start the Java Gateway server: ERROR #5002: Error de cache: <UNDEFINED>zGetJavaVersion+22^%Net.Remote.Service.1 *versionWithPrefix

We have checked that we do have the Java Home set:

/usr/java/jdk1.8.0_65

And we have seen the java files in the server:

0 2
0 628