Credentials for a Productions are stored as plain text in ^Ens.SecondaryData.Password and exposed as plain text via SQL table Ens_Config.Credentials which is not ideal as only admins should know the credentials.

I can create my own adapter etc... to store and use encrypted passwords but does anyone know if there is a standard way to do this in a Production?

Alternatively, am I missing how to secure this so the production can run and someone can monitor and operate a production without access to the SQL table or global?

0 2
1 151
Announcement
David Underhill · Jun 27, 2022
UK & Ireland Summit 2022

Couldn't see this on the community, not sure why...

UK & Ireland Summit 2022
Leading Through Innovation

18-19 October 2022 – The VOX, NEC, Birmingham

Join us for a true community event, once again bringing together InterSystems customers and partners – to learn, inspire, and share innovation challenges with each other. To register, please complete the form below.

2 0
0 120

I am sure I came across this in the past with Cache and just saw this again in IRIS.

When rebuilding or swapping a DAT file for a database it retains the Resource of the DAT file, not the Resource of the Database it is being used for.

For instance, if I have a local Database called APP with a resource %DB_APP and I want to refresh the data from another Database called TEST that has a Resource %DB_TEST I can just copy the DAT file from the TEST folder to the APP folder.

0 5
0 122
Question
David Underhill · Jul 28, 2020
Explicit FTPS in Cache

We use the %Net.FtpSession class to perform FTPS file transfers. This has worked fine with Implcit FTPS servers but crashes when trying to connect to an Explicit FTPS server. Explicit FTPS has a slightly diffferent negotiation in the intitial connection and different ports.

Has anyone gotten Explicit FTPS working with the Cache classes?

0 2
0 351

I have been using %Net.FtpSession and while it works, its handling of file/directory listings from an FTP server is less than ideal and, while this is due to the FTP protocol itself, the class could be written to handle this as would an FTP client such as FileZilla and command line/class FTP handlers for other languages. I was wondering if anyone knows how the Ensemble adaptor works with this in case it provides code that would help, though the source does not seem to be available. Below are the issues I see in FTP, some are based on past experience writing our own FTP handler in the past

1 2
0 337
Question
David Underhill · Jan 14, 2020
%CSP.Rest custom headers

I would like a REST client to be able to send a custom header with the http request, for example "APPLICATION-ID".

This can be seen in the CSP gateway trace but I have tried using %request.GetCgiEnv("HTTP_APPLICATION-ID") in various formats and parts of the classes but cannot work out where I can get this. Documentation says this should work but is for normal CSP pages.

Any ideas?

0 6
0 249

I was hoping for some input on the best way to deploy code to site with the following criteria:

- No source code, only compiled code to be deployed.
- Classes and Routines are part of the application.
- Data and code reside in the same database.
- Deployments might be partial updates (i.e. cannot just send a complete CACHE.DAT).

At present the idea is just to export the .obj, any suggestions?

0 2
0 274
Article
David Underhill · Jul 12, 2019 2m read
Basic Database Metrics example

This is a self contained class that can be run from the Intersystems Task Scheduler which records peak usage details for databases and licenses built up throughout the day and retaining 30 days history.

To schedule the task to run every hour:

d ##class(Metrics.Task).Schedule()

You can also specify your own start time, stop time, and run interval:

d ##class(Metrics.Task).Schedule(startTime, stopTime, intervalMins)

Metrics are stored in ^Metrics in the namespace that the class resides in/is run from.

6 3
3 450