Updated March 2023. Please note. This article is only appropriate for usage with Viya 3.5. This article is not appropriate for use with Viya 2020.x and upwards. For connectivity between Enterprise Guide and Viya 2020.x please consult the documentation for the use of SAS/CONNECT and connecting to a CAS Server. If you wish to understand the use of SAS/CONNECT in relation to releases of Viya 2022.x (May 2022 and onwards) then take a look at this blog.
In late 2019 you may have heard of plans to support SAS Enterprise Guide integration with SAS Viya 3.5. Now you may be looking for it, but cannot find it in your Viya 3.5 environment.
Whether you perform a programming only or a full Viya 3.5 deployment, it seems it's not there. Also, after a quick look at the official documentation, what's new pages, or product reference, not much shows up. So, what's going on?
SAS' vision is aligned with our customer requests and with the market direction, towards web interfaces such as SAS Studio and away from full desktop clients such as SAS Enterprise Guide. Yet, you may remember that SAS Enterprise Guide has been able to leverage Viya 3.5 functionality for a while, at least since SAS 9.4M5 - but, as always, the devil is in the details. Up to version 8.1, SAS Enterprise Guide can connect to a CAS server running in a Viya 3.5 environment; to do that, it requires an initial connection to a SAS 9 server - either part of a SAS 9 environment that includes, at least, a metadata server, an object spawner and a workspace server, or locally co-located on the client.
SAS Enterprise Guide -> SAS 9 Metadata Server -> SAS 9 Object Spawner -> SAS 9 Workspace -> CAS
Select any image to see a larger version.
Mobile users: To view the images, select the "Full" version at the bottom of the page.
SAS Enterprise Guide -> local SAS 9 -> CAS
Starting with SAS Enterprise Guide 8.2, it is now possible to avoid any intermediate SAS 9 components and directly connect from the client to a Viya 3.5 workspace server. You can work on most of your existing projects, process flows, programs, including the capability to submit code that gets executed in CAS.
SAS Enterprise Guide 8.2 -> SAS Viya 3.5 Object Spawner -> SAS Viya 3.5 Workspace -> (CAS)
What are the benefits, with respect to the previous release? In a short sentence, you get the capability to leverage the power of SAS Enterprise Guide, without the requirement to install (and maintain) a full SAS 9 environment.
Yet, this new capability does not promote SAS Enterprise Guide to a full-class SAS Viya 3.5 product. In fact, this configuration is similar to a "programming only" environment, such as SAS Studio 5.2 (basic), with no other interaction with microservices nor other Viya 3.5 services. This similarity with SAS Studio is not incidental.
As we already stated at the beginning, SAS is moving towards web interfaces such as SAS Studio and away from full desktop clients such as SAS Enterprise Guide. I find myself using, every day more often, the web versions of Microsoft Office 365 applications, and I revert to a local installation of Microsoft PowerPoint or Microsoft Word only when I need a functionality still not available with the online version.
SAS Studio 5.2 delivers many new features that help closing the capabilities gap with SAS Enterprise Guide. Some examples are a data step debugger, the ability to create queries, the new integration with GIT, and many more.
For these reasons, SAS Enterprise Guide 8.2 does not come by default with any SAS Viya 3.5 solution and is provided to customers only after explicit request.
Although SAS Enterprise Guide 8.2 can connect to SAS Viya 3.5 without requiring any other SAS 9 component, you still need a SAS 9 depot to deploy it. In fact, SAS Enterprise Guide is not included in any Viya 3.5 repository; you should get a SAS 9 order that includes, at least, SAS Enterprise Guide itself, and use it to download a SAS 9 depot. Then, unless you need to deploy any other SAS 9 component for different purposes, I suggest you install the standalone version of SAS Enterprise Guide, as documented in Appendix A of the SAS Deployment Wizard and SAS Deployment Manager 9.4: User's Guide, available at http://support.sas.com/deploywizug94.html.
You may be required to manually install, as a pre-requisite, .Net 4.7.1 (or later, but in the 4.x family). Once you get a SAS 9 depot, the SAS Enterprise Guide standalone installer is available at
<depotroot>\standalone_installs\SAS_Enterprise_Guide_Independent_Installer\8_2, while .Net 4.7.1 can be found at
<depotroot>\products\dotnet471__99110__prt__xx__sp0__1\w32\native, or online at https://dotnet.microsoft.com/download/dotnet-framework.
To integrate SAS Enterprise Guide with SAS Viya 3.5, the first step to perform is to define a new direct connection from SAS Enterprise Guide to a SAS object spawner deployed in the SAS Viya 3.5 environment.
Start SAS Enterprise Guide, then select Tools->Connections (if you receive a request to start a new project, simply close the dialog)
If you are used to administering SAS Enterprise Guide in the SAS 9 world, you may be familiar with the dialog that opens to define a new profile. Well, with SAS Viya 3.5, that's NOT what we are going to use. A connection profile is useful to connect to a SAS Metadata server, but here you do not have any!
Select the next option on the left list, Servers, then click the Add button:
This opens a new dialog where you can define a direct connection to a SAS object spawner (used to start on-demand SAS Workspace Servers for SAS Enterprise Guide). Enter a Name, Server hostname or IP address, and Save. All other defaults should be fine for most cases (The SAS Viya 3.5 object spawner listens by default on port 8591; if you configured it to use a different port number, then adjust the Port field accordingly).
Done. You have a new connection to SAS Viya 3.5:
You can now test the connection. In SAS Enterprise Guide Servers pane, click on the server that you just defined and, when prompted, enter a valid username and password. If the connection is successful, you will be able to see a green checkmark and to expand the Libraries and File Navigation lists:
If it worked, congratulations. Yet, there are chances that your connection is still not successful at this point. If this is the case, then read on!
A possible issue that you may encounter is due to TLS errors:
By default, all communication to and within SAS Viya 3.5 full-deployments on Linux is encrypted. Therefore, getting SAS Enterprise Guide to connect to the SAS object spawner on Viya 3.5 may require some configuration and manipulation of certificates. The above dialog is complaining about the root certificate that was used to sign the certificate presented by the server when SAS Enterprise Guide tried to connect. This root certificate is self-generated by the SAS Secrets Manager server in SAS Viya 3.5, so it is almost always unknown to - and untrusted by - the Windows client machine hosting SAS Enterprise Guide.
In order to properly configure encrypted communication, the following steps are required:
The CA certificates used to sign the certificates that SAS Viya 3.5 servers use can be located in /opt/sas/viya/config/etc/SASSecurityCertificateFramework/cacerts, on the machine hosting the SAS object spawner SAS Enterprise Guide tried to connect to. There are multiple files in this directory: locate the one named vault-###-ca.crt.
Copy this file to the Windows client machine.
The vault-###-ca.crt file actually contains two certificates: the SAS Viya 3.5 root CA certificate and the intermediate CA certificate. The following shows an abbreviated example file:
As you can see, the certificates are delineated by the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- tags. You need to split them into separate files. Use a text editor to create a new empty file, paste all the text from the first tag -----BEGIN CERTIFICATE----- to the first -----END CERTIFICATE----- (tags included). Save the file in a temp directory on the Windows client machine naming it SASViyaCARoot.crt. Repeat the process with a second file, pasting all the lines included in the second set of tags (tags included) and saving it as SASViyaCAIntermediate.crt
The detailed steps for importing the certificates into the Windows CA stores are documented in the SAS Viya Administration guide. Use the Certificates Snap-In of the Microsoft Management Console and walk through the steps of importing of certificates. In the end, the certificates should be available and visible within the MMC:
After the import, SAS Enterprise Guide should be able to successfully validate the SAS Viya 3.5 certificates and you will be able to connect ... unless you also encounter the next issue.
A second kind of connection issue may arise in very specific situations.
SAS Viya 3.5 introduces better support for hosts with multiple network interfaces or multiple IP addresses, with the capability to specify, during the initial deployment, to which IP address services should bind. In detail, it is possible to specify an address/hostname/interface for internal connections, and different ones for external connections. The following shows an example network configuration file:
When this capability is used to bind internal connections to an IP address that is not reachable from external clients, SAS Enterprise Guide incurs in the issue presented above. In fact, the SAS object spawner binds to, and only listens on, the specified internal address (in the example above, it is 192.168.1.3), to which SAS Enterprise Guide cannot connect.
In this case, you have to explicitly tell the SAS object spawner to listen on the external address, by overriding a configuration property. You can follow these steps:
With the changes above, the SAS object spawner binds to all available interfaces - thus, SAS Studio (Basic) is unaffected by the change -, but manages connections with SAS Enterprise Guide using the specified external hostname and interface.
SAS Enterprise Guide cannot automatically leverage any load-balancing or failover capability, even if the SAS Viya 3.5 programming environment has been deployed on multiple servers. As a manual workaround, it is possible to repeat multiple times the steps outlined above, to define a connection to each individual server, and manually switch from one to another when required.
The direct connection between SAS Enterprise Guide and the SAS object spawner and the SAS workspace server, as we have seen, does not leverage SAS Viya 3.5 REST APIs nor the HTTPS protocol; it’s still using the traditional SAS proprietary IOM protocol, secured by TLS. For this reason, the same technique described here can be used to create a direct connection to a SAS 9 object spawner.
Finally, Kerberos authentication is not enabled by default on the SAS Viya 3.5 object spawner. To use IWA for direct connections from SAS Enterprise Guide 8.2, you will require additional Kerberos prerequisites and SAS object spawner configuration. This
will be the subject for another post is perfectly explained in this post from @StuartRogers !
As previously stated please remember. This article is only appropriate for usage with Viya 3.5. This article is not appropriate for use with Viya 2020.x and upwards. For connectivity between Enterprise Guide and Viya 2020.x please consult the documentation for the use of SAS/CONNECT and native features for Enterprise Guide submissions to CAS.
Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
Data Literacy is for all, even absolute beginners. Jump on board with this free e-learning and boost your career prospects.