align:right

SASjs Server

align:right

About 4GL Apps

Delivery, Enablement, & Support

⚠️ Stop me if I go too fast! ⚠️

align:right

Company Overview

  • UK Ltd, 9 years
  • SAS UK Subcontractor
  • 7 developers - 5 JavaScript, 2 SAS

Focus: SAS Solutions

align:right

Products

  • Data Controller for SAS® - for regulated industries
  • Sasensei - quiz game with 5000 SAS geeks
  • SASjs - DevOps Framework
align:right

Why Build an Open Source SAS server?

  • Deliver apps to traditional Base SAS Users
  • Significantly lower running costs
  • Build & test SAS apps locally (deploy globally)
align:right

SASjs Server Features

  • App Stream
  • Full REST API
  • Stored Programs
  • Multiple runtimes (SAS, JS)
  • Users & Groups (server mode)
align:right

SASjs Server Capabilities

  • Integrate Base SAS with third party systems using REST API
  • Build & Distribute SAS Apps to ANY and ALL SAS customers
  • Execute Test Suites with sasjs test
align:right

Integrations

align:right

Demo - Basic Deploy on http

SASjs server can be manually downloaded from github releases page.

Or, programmatically:

curl -L https://github.com/sasjs/server/releases/latest/download/linux.zip > linux.zip
unzip linux.zip
./api-linux
align:right

Demo - SASjs Studio, SASjs API & SAS Drive

  • Studio returns LOG and WEBOUT (no output)
  • Every session is a new session
  • Use APIs (and Studio) to load Drive
align:right

Demo - https deploy (with certificates)

To avoid prompts, provide variables in a .env file as follows:

SAS_PATH=/opt/sas
PROTOCOL=https
CERT_CHAIN=fullchain.pem
PRIVATE_KEY=privkey.pem
PORT=443
align:right

Demo - Server Mode

SASjs uses Mongo DB. Can be set up locally, but we'll use a connection string for a cloud instance. Required configs:

MODE=server
DB_CONNECT=mongodb+srv://user:pass@cluster0.gblpw.mongodb.net/?retryWrites=true&w=majority
align:right

Demo - APIs

Server mode brings additional capabilities:

  • Authentication
  • User Management
  • Group Management

Demo - create user / group, add a user to group

align:right

Demo - App Stream

align:right

Running tests

SASjs Server can also be used as a test runner. To illustrate, using SASjs Core:

  1. Open https://gitpod.io/github.com/sasjs/core
  2. Authenticate: sasjs auth -t server
  3. Deploy: sasjs cbd -t server
  4. Run test: sasjs test ms -t server
align:right

Mocking Services

By default, SASjs Server runs only SAS. A (node) JS runtime can also be selected as a primary or secondary runtime. Config:

NODE_PATH=/usr/bin/node
RUN_TIMES=js,sas

Demo - running JS in Studio, running minimal seed app with JS services

align:right

Roadmap

  • Permissions
  • Okta / LDAP integration
  • Python & R runtimes

or, whatever our projects or sponsors request..

align:right

Resources

demo prep: 1. clear down the server 2. set up fresh dB 3. launch sonic repo: https://gitpod.io/github.com/allanbowe/sonic 4. launch core env: https://gitpod.io/github.com/sasjs/core