Search

Clear filter
Question
Ankur Shah · Jan 4, 2022

Implement CI/CD with VSTS for Intersystems IRIS rest api

Hi Team, I want implement build/release pipeline for InterSystems IRIS rest API with VSTS without docker container or other tool. Can you please provide step by step guide for same. Thanks, Ankur Shah Most of the CI/CD processes are now based on Container's way. And do it without Docker makes this process much more complex. And It's not quite clear what do you want to achieve. And in any way, this task is quite complex, and very much depends on what kind of application you have, how you build it right now, in some cases major OS, and even when some other languages and technologies are used for application. You may contact me directly, I can help with this, I have experience and knowledge on this. We are using angular as front end and Intersystem IRIS as a backend. We created a CI/CD pipeline for angular project without docker container with VSTS. Same way we want to implement CI/CD pipeline for Intersytem IRIS. Goal is to move our IRIS code from stage server to production server with the help of CI/CD pipeline. Moreover, we don't have any idea on docker and not sure what additional infrastructure required for used docker container. Hi. I implement CI/CD pipeline of IRIS in AWS without container!I use CodeCommit what is git service and CodeDeploy what is deploy service. When source code(cls files) was pushed to CodeCommit, CodeDeploy executes to pull source files from CodeCommit, and deploy to application server.Application server is installed IRIS, and use Interoperability for monitor deploy files. When Interoperability detects files, executes $SYSTEM.OBJ.DeletePackage(path) and $SYSTEM.OBJ.ImportDir(path, "*.cls;*.mac;*.int;*.inc;*.dfi", flag). Hi, By mistake I have accepted your answer. Can you please help me on this. It would be great if you can provide some video or tutorial. Thanks, Ankur Shah VSTS supports Git, I would recommend using it for version control. As for CI/CD pipeline check this series of articles. Might be a bit late to the party, but we use studio project exports in one of our project to create build artifacts, mainly because we are working with customers that do not support containers or other methods of deployment. Here is the snippet: ClassMethod CreateStudioExport() As %Status { #Dim rSC As %Status #Dim tSE As %Exception.StatusException #Dim tProject as %Studio.Project Try { set tRelevantFiles = ..GetAllRelevantFiles() set tProject = ##class(%Studio.Project).%New() set tProject.Name = "My Studio Export" set tIterator = tRelevantFiles.%GetIterator() while tIterator.%GetNext(.key , .classToAdd ) { write "Adding "_classToAdd_" to project export",! $$$ThrowOnError(tProject.AddItem(classToAdd)) } $$$ThrowOnError(tProject.%Save()) zwrite tProject $$$ThrowOnError(tProject.Export("/opt/app/studio-project.xml", "ck", 0, .errorLog, "UTF-8")) Set rSC = $$$OK } Catch tSE { zwrite errorLog Set rSC = tSE.AsStatus() Quit } Quit rSC } ClassMethod GetAllRelevantFiles() As %DynamicArray { set tt=##class(%SYS.Python).Import("files") set string = tt."get_all_cls"("/opt/app/src/src") return ##class(%DynamicArray).%FromJSON(string) } Here is the python script: import os import json # Used to gather relevant files during a buildpipeline step! def normalize_file_path(file, directory): # Remove the first part of the directory to normalize the class name class_name = file[directory.__len__():].replace("\\", ".").replace("/", ".") if class_name.startswith("."): class_name = class_name[1:] return class_name def is_relevant_file(file): file_lower = file.lower() return file_lower.endswith(".cls") \ or file_lower.endswith(".inc") \ or file_lower.endswith(".gbl") \ or file_lower.endswith(".csp") \ or file_lower.endswith(".lut") \ or file_lower.endswith(".hl7") def get_all_cls(directory): all_files = [val for sublist in [[os.path.join(i[0], j) for j in i[2]] for i in os.walk(directory)] for val in sublist] all_relevant_files = list(filter(is_relevant_file, all_files)) normalized = list(map(lambda file: normalize_file_path(file, directory), all_relevant_files)) print(normalized) return json.dumps(normalized) It is all rather hacky, and you probably have to use the snippets I provided as basis, and implement stuff yourself. What we do is: Spin up a docker container with python enabled in the buildpipeline that has the source files mounted to /opt/app/src Execute the CreateStudioExport() method in said docker container Copy the newly created studio export to the build pipeline host Tag the studio export as artifact and upload it to a file storage Maybe this helps! Let me know if you have questions!
Announcement
Anastasia Dyubaylo · Feb 8, 2023

[Webinar] Demo of Deltanji: source control tailored for InterSystems IRIS

Community webinars are back! And we're thrilled to invite you to the webinar of George James Software, partners of InterSystems: 👉 "Demo of Deltanji: source control tailored for InterSystems IRIS" 👈 Join this webinar to learn how the Deltanji source control can seamlessly integrate into your development lifecycle and see a demonstration. 🗓️ Date & Time: Thursday, February 23, 4 pm GMT | 5 pm CET | 11 am ET 🗣️ Speakers from George James Software: @George.James, CEO @John.Murray, Senior Product Engineer @Laurel.James, Marketing and Business Development Manager 👉 What will be discussed during the webinar: How the source control integrates with your system is imperative in ensuring it works seamlessly behind the scenes without interruption. Deltanji source control, by George James Software, understands the internal workings of InterSystems IRIS and provides a solution that can seamlessly handle its unique needs. It has client integrations for VS Code, Studio, Management Portal, and Management Portal Productions. This demo will show how Deltanji goes beyond the traditional CI/CD pipeline, automating the project lifecycle from development through to deployment, making it the perfect source control companion for organizations with continually evolving systems. It will also include a demo of the new Production component driver, which enables highly granular management of interoperability Productions with tight integration into the Management Portal. Using Deltanji will improve the quality of both the development process and the overall health of a system - ensuring developers are working on the correct code and preventing regressions and other problems that can result in poor code quality and increased costs. Deltanji has been widely adopted by software consultants, large international organizations, and everyone in-between who works with InterSystems environments. Sounds very interesting and useful! Don't miss this opportunity to learn more about Deltanji source control and its use in InterSystems projects! >> REGISTER HERE << Hi Devs, Don't miss the upcoming webinar with George James Software! Already 43 registered people. 😎 Registration continues >> click here << Hurry, the webinar starts in 3 days! 🔥 Developers, The webinar will take place tomorrow at 4 pm GMT | 5 pm CET | 11 am ET! Don't miss this opportunity to learn how the Deltanji source control can seamlessly integrate into your development lifecycle and see a demonstration. >> Register here << Hey Community, The webinar will start in 10 mins! Please join us in Zoom. Or enjoy watching the live stream on YouTube. See you ;) Hey everyone! The recording of this webinar is available on DC YouTube: ▶️ [Webinar] Demo of Deltanji: source control tailored for InterSystems IRIS Big applause to our awesome speakers @George.James, @John.Murray, and @Laurel.James. And thanks everyone for joining! Thanks for having us!
Question
Drew Holloway · Feb 28, 2020

How to transform date range into multiple rows in Intersystems Cache?

Let's say I start with a date range of '1-5-2019' to '5-25-2019' that occurs on one row. I'd like to ultimately have this show as 5 rows in Crystal Reports as shown below Result 1-5-2019 1-31-2019 2-1-2019 2-28-2019 3-1-2019 3-31-2019 4-1-2019 4-30-2019 5-1-2019 5-25-2019 I found a result that worked in T-SQL, but I'm not sure how to translate it to Cache SQL. The T-SQL code is select dateadd(d,N.number,d.begindate) adate, data from data d join Numbers N ON number between 0 and datediff(d, begindate, enddate) This code fetches a row for every day between the begin date and end date. Then I can group it and find the MIN and MAX for each month. Do you know how to write this in InterSystems Cache? We have a MyAvatar implementation and so I was able to create a multi iteration table after some trouble with numbers 0 to 99. Thanks for any help! I believe I found the answer:SELECT DATEADD("D", "Number", '2017-01-01') FROM Numbers WHERE "Number" BETWEEN 0 AND DATEDIFF("D", '2017-01-01', '2017-04-05') Now I just need to expand my Numbers table. I'm wondering if anyone has a view for this. I'd like a numbers view between 0 and 10000. I think that should be sufficient. Feel free to answer here, but I'll start a new topic. Defining and Using Stored Procedures Source code Class dc.test [ Abstract ] { Query daterange( d1 As %String, d2 As %String) As %Query(ROWSPEC = "dBegin:%String,dEnd:%String") [ SqlName = daterange, SqlProc ] { } ClassMethod daterangeExecute( ByRef qHandle As %Binary, d1 As %String, d2 As %String) As %Status { s qHandle("d1")=$system.SQL.TODATE(d1,"MM-DD-YYYY"), qHandle("d2")=$system.SQL.TODATE(d2,"MM-DD-YYYY") q $$$OK } ClassMethod daterangeFetch( ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = daterangeExecute ] { s d2=qHandle("d2"), dBegin=qHandle("d1"), dEnd=$system.SQL.LASTDAY(dBegin) s:dEnd>d2 dEnd=d2 i dBegin>d2 { s AtEnd=1 } else { s Row=$lb($system.SQL.TOCHAR(dBegin,"MM-DD-YYYY"),$system.SQL.TOCHAR(dEnd,"MM-DD-YYYY")), qHandle("d1")=dEnd+1 } q $$$OK } ClassMethod daterangeClose(ByRef qHandle As %Binary) As %Status [ PlaceAfter = daterangeExecute ] { q $$$OK } } Result: select * from dc.daterange('1-5-2019','5-25-2019') dBegin dEnd 01-05-2019 01-31-2019 02-01-2019 02-28-2019 03-01-2019 03-31-2019 04-01-2019 04-30-2019 05-01-2019 05-25-2019 Thanks for your reply. I'm just able to use SQL code and tables for this. I'm not sure if that was clear, but I don't have a way to insert or work with code like you had suggested. Thanks though!
Announcement
Vita Tsareva · Nov 30, 2022

InterSystems FHIR Healthtech Incubator Caelestinus Final Demo Day

Hi Community, The day has arrived — InterSystems FHIR Healthtech Incubator Caelestinus Final Demo Day, November 30, 2022! We started Caelestinus 8 months ago in March with 22 outstanding teams. Today 15 teams will pitch what they have achieved so far and their message to the market! I’m pleased to invite everyone to InterSystems FHIR Health Tech incubator Caelestinus Demo Day, which will happen in a hybrid online/offline mode: you can watch pitches online via www.caelestinus.tech starting at 2 p.m. CET or go in-person in IKEM — Institute for Clinical and Experimental Medicine, the largest Czech medical research and clinical hospital. Save the date: 30th of November 2022, 2 PM CET.Will be happy to see you online and in Prague in person. Good luck to Caelestini startups! Hey Developers, Watch the recording of the Caelestinus Final Demo Day on InterSystems Developers YouTube: ⏯ The Final Demo Day of InterSystems FHIR Startup Incubator — Caelestinus
Question
Arun Kumar · Nov 24, 2017

How to create a restful api in Intersystems cache with JSON response.

Guys,Can you please guide me to create a RESTful API in our cache with JSON response. Thanks in advance.Thanks,Arun Kumar Durairaj. Thanks Benjamin. Check out the full tutorial which includes REST API set-up:https://community.intersystems.com/post/lets-write-angular-1x-app-cach%C3%A9-rest-backend-start-here This one is also very useful:Setting Up RESTful Services Ver.02https://learning.intersystems.com/course/view.php?id=776 The advice you have received thusfar has been OK, but the easiest thing to do would be to watch Mike Smart's global summit presentation, which takes you from literally nothing, to having a (nearly) fully fleshed out REST API in a simple case. See that here:https://learning.intersystems.com/course/view.php?id=681If this is your first time working with REST Applications, this is the best place to start. Then, if you'd like, you can continue with an online learning course, where Mike is going to expand on this to include some best practices. Announcement for that is here:https://community.intersystems.com/post/webinar-dec-7-rest-and-relaxation-best-practices-stress-free-restful-developmentHopefully we'll see you there!
Article
Yuri Marx · Jun 8, 2020

Compliance of data solutions based on InterSystems technology with GDPR (Europe), CCPA (California) and LGPD (Brazil)

About regulations Personal data privacy regulations have become an indispensable requirement for projects dealing with personal data. The compliance with these laws is based on 4 principles: Compliance with the rights of the holder of personal data; Governance of personal data assets; Privacy by Design and by Default; Data protection. In case of violation in the treatment of personal data, controllers and operators of these data may suffer: Fines of up to 4% of revenue or up to €20 million; Shutdown of the digital service until the problem is corrected; Publicity of the incident to the public. Take Action Administrators, developers and managers of data platforms on InterSystems technology can take the following detailed measures to help comply with personal data protection laws. In compliance with the rights of the holder Create APIs using Interoperability IRIS ESB for consumption in a Portal for the end user to exercise their rights. The APIs must allow to the holder: Consult the personal data that the controller keeps about the holder. Allow downloading this query in open format (JSON). Allow the holder to correct personal data. Use the IRIS ESB to record changes on each system where this personal data exists. Implement a consent management service for sharing and processing personal data, especially sensitive data. In the InterSystems Health services the HIPAA is enough. Allow the holder to consult with whom their data has been shared. Build an interoperability service (ESB) with the internal service system to receive requests from the holder. In personal data governance Catalog persistent classes, productions and BI cubes that store or process personal data. Use XData for this. It is necessary to catalog whether it is personal or sensitive data, purpose of processing, technical and business responsible and for how long the data will be stored. Perform good data access management. Manage the data lifecycle by creating a procedure for disposing of data after the legal custody period. Monitor and audit data flows. In privacy by design and by default Architect and design persistent objects or namespaces that deal with personal data with: Create a DPIA (Data Protection Impact Assessment) when deals with sensitive data, high volume data, personal profile production and use of new technologies (Machine Learning); Use managed key encryption to the sensitive data; Use TLS and HTTPS to message channels. Add DevSecOps in your DevOps initiative. Create docker models with security and best practices set by default. Include automated tests to security checks. In Security Protection Create an efficient procedure to backup and restore data. The backup must be cryptographed; Work your environment in a High Availability; Protect your API with IRIS API Management; Protect your persistent objects with good authentication and authorization procedures; Enable logs and use ESB to log end to end the sensitive operations; Create Cybersecurity Guide; Create IT Security Guide; Create Data Privacy Guide.
Announcement
Anastasia Dyubaylo · Sep 15, 2020

Webcast in Portuguese - InterSystems IRIS for notification of Covid-19's test results for the Ministry of Health

Hi Community! Join us for another InterSystems Brazil virtual event, this time in partnership with Shift. The topic of discussion led by Marcelo Lorencin on September 16 will be: "InterSystems IRIS for notification of Covid-19's test results for the Ministry of Health". Please register now with the link below, vacancies are limited: ✅ InterSystems IRIS for notification of Covid-19's test results for the Ministry of Health Date & Time: September 16 – 11:00 BRT Note: The language of the webcast is Portuguese. Join us!
Question
Elize VdRiet · Jul 27, 2020

VS Code InterSystems Objectscript extension version 0.8.7 no longer connects to server

My VS Code plugin "InterSystems Objectscript" upgraded to version 0.8.7 but the server settings no longer visible in extension settings and can no longer connect to our InterSystems server. What has chnaged and how do we set the server connectio up? I checked the JSON file and it still has the settings as it was before but it is not connecting. Screenshot of the settings json and then on the left a timer icon on the InterSystems icon and blue line running from left to right at top as it tries to conenct to server. I downgraded to version 0.8.6 setup settings again as before and it connects, there is nothing wrong with my connection to the server, it is the extension. I don't see the value for port, could you set it as well, and check again? For the next time, the best place to post about issues you faced is issues page right in the repository I had that happen with mine, where the port AND namespace completely disappeared from the connection objects. I had to add both back in at the lowest level, then close VSCode and re-open it for the changes to take effect. (Closing the Workspace probably also would work). (I also installed the IS Server manager extension before checking the ObjectScript tab. I don't think that changed anything, but mentioning it just in case.) I wonder why we can't edit the connection settings directly from the extension settings themselves anymore, but I guess that's a question for the repo.
Announcement
Steven LeBlanc · May 13, 2020

InterSystems IRIS Now Available on AWS Graviton2-based Amazon EC2 Instances

AWS has officially released their second-generation Arm-based Graviton2 processors and associated Amazon EC2 M6g instance type, which boasts up to 40% better price performance over current generation Intel Xeon based M5 instances. A few months ago, InterSystems participated in the M6g preview program, and we ran a few benchmarks with InterSystems IRIS that showed compelling results. This led us to support ARM64 architectures for the first time. Now you can try InterSystems IRIS and InterSystems IRIS for Health on Graviton2-based Amazon EC2 M6g instances for yourselves through the AWS Marketplace! If you’re unfamiliar with launching an instance through the AWS Marketplace, let’s walk through setting it up. First make sure that you’re logged into your AWS Account, then navigate to the AWS Marketplace listing for InterSystems IRIS and click ‘Continue to Subscribe’ Click ‘Accept Terms’ to subscribe, wait for a minute, and then ‘Continue to Configuration’ You can accept the defaults, and ‘Continue to Launch’ On the Launch page, make sure to select an m6g instance type, such as m6g.large Scroll down, and make sure to select a valid key pair, or follow the link to create a new one if you don’t already have one. Then select Launch. Now you can navigate to the EC2 console to access your new instance You can name it, access the public IP address below: And SSH into the instance using your private key and host name (ubuntu@<Public-IP-Address>). Here I’m using PuTTY, make sure you point to your private key file (.ppk for PuTTY, under SSH > Auth) For other SSH clients and additional information, please refer to the Usage Instructions copied here: Usage Instructions for IRIS 2020.1(Arm64) Community Edition Getting Started: - SSH into the Ubuntu EC2 instance following the instructions here: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html The default user is "ubuntu" - Make note of the connection information provided in the connection message. - Start by resetting the IRIS password: "$iris password" - Connect your IDE - see: https://www.intersystems.com/developers/ - Learn more with a Quickstart - https://learning.intersystems.com/course/view.php?id=1055&ssoPass=1 - Enter the IRIS terminal directly with $docker exec -it iris iris session iris Additional Resources: Getting Started with InterSystems IRIS - https://gettingstarted.intersystems.com/ InterSystems strives to provide customers with platform freedom of choice. We at InterSystems are very excited to see the performance gains and cost savings that AWS Graviton2 processors can provide to InterSystems IRIS customers. We anticipate that these combined benefits will drive significant adoption of Arm-based platforms among IRIS customers, and we’re thrilled to support InterSystems IRIS running on AWS Graviton2-based M6g EC2 instances! The Community Edition images for IRIS and IRIS for Health for ARM64 are now available in the Docker Store. Try them out! InterSystems IRIS: docker pull store/intersystems/iris-community-arm64:2020.2.0.211.0 InterSystems IRIS for Health: docker pull store/intersystems/irishealth-community-arm64:2020.2.0.211.0 Excellent news! Thanks @Steven.LeBlanc and congratulations!
Announcement
Evgeny Shvarov · Dec 16, 2018

New Video: Coding Advent of Code 2018 with InterSystems ObjectScript in Visual Studio Code

Hi Community!We try a new approach to the InterSystems Developers YouTube Videos called "Coding Talks"!Coding Talks is a short video in which the developer demonstrates a particular feature or functionality of InterSystems Data Platforms which he/she uses to in coding. Typical format: the face on side and editor with ObjectScript.Check this video I made by myself participating in Advent of Code 2018 and coding with InterSystems ObjectScript in VSCode.Coding Advent of Code 2018 Using InterSystems ObjectScript You're very welcome to share your ideas in the comments of this post!
Question
Rajat Sharma · Nov 9, 2020

GNUpg command to encrypt/decrypt a file is working fine on InterSystems's Terminal but not working in the BPL process.

I have created $zf commands to encrypt/decrypt a file using GNUpg which is working fine in Terminal but not populating output file when I call this from BPL process. Any help would be appreciated!! Terminal works under your OS user, BPL works under InterSystems user (typically irisusr). This type of error is often caused by: IRIS OS user does not have permissions to access the input and/or output file IRIS OS user does not have required executables in PATH IRIS OS user does not have required shared libraries in LD_LIBRARY_PATH To solve issue (1) create input and output files in IRIS Temp directory - a path returned by: write ##class(%File).NormalizeDirectory(##class(%SYS.System).TempDirectory()) To test for issues (2) and (3) add a $zf call which inits all your dependencies and returns version or some other trivia. To adjust PATH and LD_LIBRARY_PATH use System Management Portal. Here's some info. I recommend checking environment variables from inside your process with: write $SYSTEM.Util.GetEnviron(Name) For quick testing you can adjust environment variables for the current process with this community utiliy.
Announcement
Shane Nowack · May 23, 2022

Beta Testers needed for our upcoming InterSystems IRIS System Administration Specialist Certification Exam

Hello IRIS Community, InterSystems Certification is developing a certification exam for IRIS system administrators and, if you match the exam candidate description given below, we would like you to beta test the exam. The exam will be available for beta testing on June 20-23, 2022 at InterSystems Global Summit 2022, but only for Summit registrants (visit this page to learn more about Certification at GS22) . Beta testing will open for all other interested beta testers on July 18, 2022. However, interested beta testers should sign up now by emailing certification@intersystems.com (see below for more details). The beta testing must be completed by September 30, 2022. What are my responsibilities as a beta tester? You will be assigned the exam and will need to take it within one month of the beta release. The exam will be administered in an online proctored environment (live-proctored during Summit), free of charge (the standard fee of $150 per exam is waived for all beta testers), and then the InterSystems Certification Team will perform a careful statistical analysis of all beta test data to set a passing score for the exam. The analysis of the beta test results will take 6-8 weeks, and after the passing score is established, you will receive an email notification from InterSystems Certification informing you of the results. If your score on the exam is at or above the passing score, you will have earned the certification! Note: Beta test scores are completely confidential. Exam Details Exam title: InterSystems IRIS System Administration Specialist Candidate description: An IT professional who: installs, manages, and monitors InterSystems IRIS environments, and ensures data security, integrity, and high availability. Number of questions: 72 Time allotted to take exam: 2 hours Recommended preparation: Classroom course Managing InterSystems Servers or equivalent experience. Online course InterSystems IRIS Management Basics, is recommended, as well as experience searching Platform Management Documentation. Recommended practical experience: 1-2 years performing system administration, management, and security tasks using InterSystems IRIS data platform version 2019.1 or higher. Review the set of practice questions found in the PDF file at the bottom of this page Exam practice questions The practice questions found in the PDF file at the bottom of this page are provided to familiarize candidates with question formats and approaches. Exam format The questions are presented in two formats: multiple choice and multiple response. Several documentation books from the Platform Management section of InterSystems IRIS Documentation will be available during the exam. Please visit the practice question document at the bottom of this page to see the documentation books that will be available during the the exam. DISCLAIMER: Please note this exam has a 2-hour time limit. While several documentation books will be available during the exam, candidates will NOT have time to search the documentation for every question. Thus, completing the recommended preparation before taking the exam, and searching the documentation only when absolutely necessary during the exam, are both strongly encouraged! System requirements for beta testing Version 6.1.27.1 or earlier of Questionmark Secure Adobe Acrobat set as the default PDF viewer on your system Windows 10 or 11 STRONGLY RECOMMENDED! MacOS will work, but the ability to search the included documentation is extremely limited on MacOS. NOTE: We delayed the release of this beta test in an attempt to get the search functionality across all operating systems to behave similarly. Unfortunately, Questionmark, our exam delivery service, has been unable to resolve the search functionality issues. Thus, regardless of your system’s OS, please prepare for your exam attempt by launching this short sample “exam experience” in Questionmark Secure. Completing the sample assessment will take ~10 minutes and will familiarize you with taking an exam in our locked-down browser (Questionmark Secure), the format of how the documentation books will be presented on the exam, and how to troubleshoot any search-related issues you may encounter. PLEASE HAVE A LOOK AT THIS SAMPLE ASSESSMENT BEFORE YOUR EXAM (IT WILL GREATLY REDUCE YOUR EXAM STRESS)! Exam topics and content The exam contains question items that cover the areas for the stated role as shown in the KSA (Knowledge, Skills, Abilities) chart immediately below. KSA Group KSA Group Description KSA Description Target Items T41 Installs and configures InterSystems IRIS Installs and upgrades instances Installs development, client, server, and custom instances; Performs different security installs of InterSystems IRIS; Identifies structure and contents of folders in the Installation directory; Starts, stops, and lists instances from the command line; Upgrades existing instances Configures namespaces, databases, memory, and other system parameters Creates, views, and deletes namespaces and databases; Identifies contents and characteristics of default databases; Maps and manages globals, routines, and packages; Determines when it is necessary to directly edit the iris.cpf and when it is inadvisable; Determines appropriate size of global buffers and routine buffers, and tunes them as needed; Determines appropriate journal states, database size, and maximum size for database; Determines disk space requirements for installation and operation; Determines memory requirements for installation and operation; Determines appropriate values for generic memory heap settings; Increases lock-table sizes Manages licenses Activates and reviews licenses; Configures license servers T42 Manages and monitors InterSystems IRIS Manages databases Mounts, dismounts, and expands databases; Compacts, truncates, and defrags databases; Checks database integrity; Manages data; Manages routines Manages user and system processes Performs process operations: suspend, resume, terminate; Inspects processes; Manages process locks; Uses Task Manager to view, schedule, execute, manage, and automate tasks Manages journaling Configures journal settings and locations; Uses journaling; Identifies the importance of enabling the "Freeze on error" option for data integrity; Differentiates between WIJ and journal functions; Uses Journal Profile utility; Restores journals; Purges journal files Diagnoses and troubleshoots problems Accesses and configures system logs; Identifies and interprets errors stored in system logs; Runs IRISHung/Diagnostic Report; Identifies and terminates stuck/looping processes; Inhibits access; Gains emergency access to configuration Monitors system Uses ^PERFMON to monitor system; Determines which monitoring tools are appropriate for different performance issues such as journal profiles, ^BLKCOL, and ^SystemPerformance; Runs the ^SystemPerformance utility; Determines global sizes T43 Implements system continuity Implements mirroring Identifies requirements to set-up mirroring; Identifies mirror members and describes mirror communication; Configures mirroring; Determines failover possibilities; Adds databases to mirrors Implements ECP Uses ECP; Configures ECP data and application servers; Monitors and controls ECP connections Manages backups and recoveries Plans backup strategies including frequency required, journal file retention, and considers OS level vs InterSystems online backups; Identifies contents included in backups; Uses the FREEZE and THAW APIs for snapshot backups; Verifies backups; Restores system T44 Implements system security Uses audit log to track user and system events Enables and disables audit events; Views audit entries and audit event properties; Identifies the root cause of common audit events; Manages audit database Manages security Creates users and roles; Assigns roles and privileges; Grants permissions to resources; Enables and disables services; Protects applications and resources within applications; Implements database and data element encryption; Encrypts journals; Manages system-wide security settings; Imports/Exports security settings; Reduces attack surface; Implements two-factor authentication; Identifies the multiple layers involved in configuring and troubleshooting the Web Gateway (including connecting an external web server to InterSystems IRIS) Interested in participating? Email certification@intersystems.com now!
Announcement
Nermin Kibrislioglu Uysal · Mar 15, 2022

Seeking feedback on the design of our new InterSystems HL7 Interface Specialist certification exam

Hello Everyone, The Certification Team of InterSystems Learning Services has updated exam objectives for our HL7 Interface Specialist certification exam and we need input from our implementation community. How do I provide my input? We will present you with a list of job tasks, and you will rate them on their importance and other factors. How much effort is involved? It takes about 30-45 minutes to fill out the survey. You can be anonymous or identify yourself and ask us to get back to you. How can you access the survey? You can access the survey here Note: Your answers cannot be saved. Thus, once you start the survey, please do not close your browser until you are finished. Here's the exam title and the definition: HL7 Interface Specialist An IT professional who: designs, builds and performs basic troubleshooting of HL7 interfaces with InterSystems products Thank you Nermin Kibrislioglu Uysal, Certification Exam Developer, InterSystems
Announcement
Anastasia Dyubaylo · Jun 6, 2022

[Video] InterSystems HealthShare Analytics Solution: Create & Deliver Real-Time Insight at Scale

Hey Developers, New video is already on InterSystems Developers YouTube channel: ⏯ InterSystems HealthShare Analytics Solution: Create & Deliver Real-Time Insight at Scale Many data-driven organizations need to build high-quality, clean, validated sources of truth. Learn how the InterSystems HealthShare Analytics Solution enables your organization to consolidate and harmonize data at scale from disparate sources in real-time, allowing you to collaborate across all functions and with outside entities while maintaining control of your data. 🗣 Presenter: Fred Azar, Healthcare Analytics Executive, InterSystems Like and share!
Article
Alberto Fuentes · Apr 5, 2022

Learn how to use OAuth2 / OpenID Connect in InterSystems IRIS in a simple way

You have read about **OAuth2** / **OpenID Connect** but you don't know how to use it? Have you ever needed to implement Single Sign-On (SSO) or secure web services based on tokens? Did you have to add authentication / authorization to your web applications or services and you didn't know how to start? What about a step by step example where you can set up an authorization server, a client and a resource server? [Here](https://openexchange.intersystems.com/package/workshop-iris-oauth2) you can find an example where you will configure InterSystems IRIS instances to act as each one of these OAuth2 roles. ## A brief introduction **Authentication** is the process of verifying that users are who they say they are. **Authorization** is the process of giving those users permission to access resources. OAuth is an authorization framework. OpenID Connect (OIDC) is extension to OAuth 2.0 to handle authentication. In OAuth2 there are different roles: * Resource owner — Usually a user. * Resource server — A server that hosts protected data and/or services. * Client — An application that requests limited access to a resource server (e.g. a web application). * Authorization server — A server that is responsible for issuing access tokens, with which the client can access the resource server. OAuth2 uses scopes as a mechanism to limit access. A client can request one or more scopes. Finally, OAuth2 supports different grant types. Each grant type can have a different behaviour which can be better suited for some scenarios. ## What can you test in the example? You can test two different scenarios. One using `Authorization Code` grant type and the other using `Client Credentials`. You will have 3 InterSystems IRIS instances that you will configure to act as each different need OAuth2 role. ### Authorization Code `Authorization Code` is a grant type suited for web / mobile application scenario. ![image](/sites/default/files/inline/images/authorization-code_0.png) In the example, you will set up a web application as the client who accesses the protected resources using an access token. ![image](/sites/default/files/inline/images/oauth-client-webapp_0.gif) ### Client Credentials `Client Credentials` is a different grant type, which typically is used when a client access the resources directly in its own name (and not on behalf of a user). ![image](/sites/default/files/inline/images/client-credentials_0.png) In the example, you will access the protected resources using Postman as the client. ![image](/sites/default/files/inline/images/oauth-client-postman_0.gif) excellent summary / training resource - thank you for taking the time to put it together!