5 Followers · 351 Posts

Caché Server Pages (CSP) is both an architecture and toolset used to build an interactive web applications with the InterSystems Data Platform.

Question Michael Davidovich · Feb 28, 2023

Any ideas on why my %session.Data array would be wiped out after setting %response.Redirect in OnPreHTTP()?

Context: trying to implement a SSO patter for authorization code flow.  I mention this because it's all I can really pinpoint as to what's changing.  Typically a user logs in by providing their username/password and we validate in our database and set the %session.Data property with the user info.

8
0 1750
Question Sabit Issakhan · Oct 29, 2018

Hello Everyone!

Following the example below i can download file only txt format, in other format(pdf,xls,rar) i have errors(can't open file), 

So, how i will change code for download file in other format? 

Thanks! 

ClassMethod GetFile(file) As %String
{
#dim %request As %CSP.Request
    set filename="E:\Rest\"_file   
    set %response.ContentType=..GetFileContentType($p(filename,".",*))
    do %response.SetHeader("Content-Disposition","attachment;filename="""_$p(filename,"\",*)_"""")
    Set %response.NoCharSetConvert=1
    Set %response.Expires=50
    set file=##class(%File).%New(filename)
    do file

3
1 1518
Article Oliver Wilms · Feb 2, 2023 1m read

Messages.log file contains lots of useful information about IRIS. Sometimes the file gets big, and it is not easy to get to the data I am interested to review. It would be nice to jump to a specific date and time we suspect a problem may have started.

Whenever I need support from InterSystems, WRC will ask to send them messages.log file. Dependent on where IRIS is deployed, it may be cumbersome to obtain messages.log file for sending it to InterSystems.

My team works on deploying IRIS containers in Kubernetes in the cloud.

1
0 376
Article Muhammad Waseem · Feb 9, 2023 2m read

Hi Community,
In this article I will demonstrate below steps to add Interactive map and visualize geographic data to web application:

  • Step1 : Install Application
  • Step2 : Create CSP Page
  • Step3 : Extend dc.IrisGeoMap.Folium class
  • Step4 : Invoke DrawGeoDetails() Method

So Let us start.
 

Step1 : Install Application

First of all we need to install iris-geo-map application by using ZPM

zpm "install iris-geo-map"

0
1 456
Article Muhammad Waseem · Feb 6, 2023 3m read

Hi Community
In this article, I will demonstrate the functionality of my app iris-geo-map

IRIS Geo Map application is a tool to visualize geographic data by generating interactive maps by using Embedded Python functionality. Application is using Folium Python library

folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the leaflet.js library. Manipulate your data in Python, then visualize it in on a Leaflet map via folium. folium makes it easy to visualize data that’s been manipulated in Python on an interactive leaflet map.

0
0 517
Question Chris Pursey · Jan 31, 2023

We have created a number of REST adapters that extend %CSP.REST and these have been working fine.  However, we are now facing a problem with a new one where very large XML documents are being posted.  This is the pattern we are following:

Set inMsg = %request.Content.Read()

Set tSC = ##class(Ens.Director).CreateBusinessService("Epro_ItkHttp",.tBusinessService)

Set tSC = tBusinessService.ProcessInput(inMsg, .tBusinessServiceOutput)

However, when the %request is particularly long, it is being truncated, and working with %XML.Reader then fails in the business service class.

4
0 680
Question Enzo Toscano · Jan 19, 2023

First of all thank you for your time in reading this question and writing a response,

We would need some help, I have created a csp page, but the first time I access it, it gives me this error:

5918  You are logged out, and can no longer perform that action 

When I refresh the page, it works ... Why?

Thank you in advance!

3
0 377
Question Norman W. Freeman · Aug 19, 2021

I have a CSP page that throw a "414 error - Request-URI Too Long" when I put lot of text (eg : 10000 characters) into a field of a submitted form. The form is submitted using POST method.

Based on some experiments I made, it seems the max size of a URL is around 8200 characters.

What is the official limit, and is there a way to increase it ? I searched in the documentation but couldn't find anything.

5
0 4618
Question André-Claude Gendron · Oct 28, 2022

I have to create a SOAP WebService that receives the username/password as part of a field in the Request. I have no control of the client's application.

<soapenv:Envelopexmlns:soapenv<<

I'm looking for advice on the best way to authenticate the user. I could verify that the user/password is correct using %session.Login(user, pass) in my WebMethod and throwing a SoapFault when this fails but I'm not sure it's the best way of doing things in my %SOAP.WebService.

3
0 952
Question Kevin Kindschuh · Nov 3, 2022

Is there a way for web application to set its session timeout value according to the user role or other criteria?

In this case, I have a custom production monitor page, and I want to set 5 minutes for most users but allow managers a longer time or those displaying pages on a monitor a longer time.

1
0 580
Question Chip Gore · Sep 20, 2022

Hi -

I'm looking for some help in getting an OS level application on my server to startup from a csp page and I'm just missing something.

I have a routine (and I've tried the same code from an instance method, with the same results) that will launch an application at the OS level using the $zf(-100,keywords,program,parms) from a terminal session, but it won't/doesn't seem to work when I call the code from a #server() call from my webpage. I don't know if there is some combination of keywords or perhaps a different version of the $zf() call that should/would work.

7
1 445
Question Cacio Watt · Aug 28, 2022

Hi,

Over time I have created an house-automation solution based on IRIS:
90% of my code is pure ObjectScript, with the most recent 10% being the use of Python libraries for specific tasks.
All of the above being terminal based up to now.
I would like to expose some configuration options / parameters via a very simple web page, to be serviced with the IRIS private web service (so I don't want to use an external Webserver just for this..)

My question:

7
0 756
Question Timothy Leavitt · Aug 31, 2022

Consider the simplest possible CSP file upload/download page - you upload a file, it's saved in the database, and the file is immediately re-download via %CSP.StreamServer:

ClassExtends%Persistent<<formmethod<

This works fine for most file types, but for HTML files (at least - maybe other types too), it doesn't work - both on IRIS 2021.2 and on an earlier version I'm running too. The resulting downloaded file has a BOM at the beginning and a NUL every other character.

Has anybody else fought with this before?

2
1 375
Question Michael Davidovich · Jul 29, 2022

What are other's thoughts, opinions and experiences going from CSP to RESTful services, specifically when it comes to reusing code in CSP files?

One could define a method in CSP as follows:

<script language="cache" method="SubmitSomethingAwesome" arguments="aswesomeId:%Numeric"> 

And it's generated in csp.mycsppage.cls ascsp.mycsppage.SubmitSomethingAwesome(awesomeId as %Numeric).

Have people had success defining there rest call by calling the generated CSP classmethod?

3
0 586
Article Oliver Wilms · Jul 10, 2022 1m read

As I was thinking what I could develop for InterSystems Full Stack Contest, I saw this post:

https://community.intersystems.com/post/how-access-production-items-through-objectscript

I developed ProductionManager.csp. It displays items in the active production. It also displays the Class in use and the date and time of last message. I believe these data points can help you make decisions which items to remove from the production.

I read that contest asked for apps which insert, update, or delete data in InterSystems IRIS.

0
0 303
Question Oliver Wilms · Jul 10, 2022

I am still working on iris-for-money app: https://github.com/oliverwilms/iris-for-money

Account.csp posts a rest call with _SYSTEM username and the password.

xhttp.open("POST", "/restapi/sql/" + query, true,"_SYSTEM","SYS");
xhttp.send();

/restapi web application has Password Authentication Method enabled.

SYS is the correct password for _SYSTEM user.

I do not understand why I see login failure in Audit database.

1
0 399
Article Fabio Goncalves · Dec 12, 2016 3m read

Suppose you have developed your own web app with InterSystems technologies stack and now want to perform a captcha validation on the client side in order to determine whether or not the user is human and make it safer. There are some modern frameworks to address the captcha issue, however most part of them needs internet access to generate codes and sometimes are complex to implement. Take this as basic example considering that image recognition has gotten too good. That's why you nowadays you tend to see more pattern recognition captchas than mere reading ones. (I.e.

9
1 1737
Question Jordan Everett · Jun 4, 2022

Hi all!

I'm currently trying to find out how to have one Web Gateway route to multiple servers Management Portal. The only thing that I have come up with so far is to potentially make different routes per server?

I have a development, test, and production server and I want to use the same Gateway server using IIS to do SSL/TLS encryption for the CSP pages.

Any ideas or recommendations to pull this off?

4
0 588
InterSystems Official Raj Singh · May 2, 2022

This month I announce the release of version 1.8.0 of the VS Code extension, which contains the following enhancements and bug fixes.

The big news is support for server-side project files as some of you old-timers will remember from Studio. If you work client-side, VS Code already has great project management features. You can simply use a folder as a project, or use multi-root workspaces. But if you work server-side, you might appreciate some better artifact management capabilities, and that's what this feature is about. Read more in this new Projects chapter of the documentation.

3
1 568
Question Michael Davidovich · Jun 6, 2022

Hi there,

I'm passing a JSON object to the server as such:

{"key":"value","key":"value","key":"value"}

From the client:

- Build object

object=JSON.stringify(object)

-pass to server side method as %String

On the server:

s object={}.FromJSON(object)

Instead of getting something like

I get

I can't access that object using %Get as if says invalid OREF.

5
0 544
Article Muhammad Waseem · May 30, 2022 3m read

Hi Community,

This post is a introduction of my open exchange iris-fhir-client application.

 iris-fhir-client can connect to any open FHIR Server by using embedded python with the help of fhirpy Library.
Get Resource information by terminal and by using CSP web application.

2
0 1072
Question Steve Riddle · Nov 1, 2021

Hi,

Has anyone experienced any issues when using Cloudflare in front of a csp application?
I keep getting 502 errors when Cloudflare is active?

Strangely, the SMP works but only if I remove the trailing question mark from the url but it doesn't resolve the issue when I try any other csp application URL's.

3
0 345
Article Robert Cemper · May 27, 2022 1m read

There is a popular package "WebTerminal". It is excellent in most situations.
Except:

  • running system commands in your operating shell is not so easy
  • as it communicates to the IRIS host over HTTP and WSS it consumes 2 connections
    • With only 5 connections in the community license (and the "Grace Period of CSP")
    • you can hit the limits rater fast: 2 Webterminals + 1 SMP and you are done
  • WebCommand is a pure CSP page consuming just 1 single connection
  • WebCommand allows multiple ObjectScript command lines running in sequence
  • With $ or !
0
0 327
Question Michael Davidovich · May 13, 2022

We are experience this with our own web app and even the demo/template here: intersystems-community/iris-fullstack-template: This template shows you how to build, test and deploy a simple full-stack application using InterSystems IRIS REST API (github.com)

When changes are made to CSS or HTML files, we can see the changes are saved to file in the Docker container by visiting the command line.  However, after refreshing, clearing cache, etc. the changes don't appear on the web application in the browser.  Viewing the source css in the browser, we see it's the old file.

7
0 366