--- marp: true paginate: true theme: default description: "npx @marp-team/marp-cli slides.md -o ./theme/slides.html" --- # Data Controller for SAS ## Allan Bowe ![bg right:33% height:250 ](https://datacontroller.io/wp-content/uploads/2018/04/logo-1-2.png) --- # Why Build Web Apps on SAS? - Self-Contained Environment - Data Management & Analytics - Enterprise Security & Scalability ![bg right:50% height:700](https://algorithmia.com/blog/wp-content/uploads/2019/10/Jira_workflow_animation.gif) --- # Problems with Desktop Apps * Security * Scalability * Governance ![bg right:50% vertical height:200](https://i.imgur.com/n3BKKPb.gif) ![bg right:50% height:200](https://media2.giphy.com/media/KAq5w47R9rmTuvWOWa/giphy.gif) ![bg right:50% height:200](https://www.r-project.org/Rlogo.png) --- # HTML5 App Architecture ![bg right:65% height:370 ](https://sasjs.io/img/architecture.png) --- # Deployment Strategies - Free for all - Centralised Deployment - Automated Deployment --- # Benefits of Automated Deployment - Stable Operating Environment - Faster Feature Delivery - Happier, More Productive Teams --- # Release Management - Jenkins / MS Release Manager - Bitbucket / Gitlab Pipelines - Github Actions --- # Making it Happen - DIY with [REST API](https://developer.sas.com/guides/restapis/viya-rest.html) - [PyViyaTools](https://github.com/sassoftware/pyviyatools) - [SASjs CLI](cli.sasjs.io) --- # SASjs Framework - @sasjs/core - Macro library - @sasjs/adapter - Connectivity - @sasjs/cli - CI/CD and Automated Deployment --- # Sonic the Hedgehog https://github.com/allanbowe/sonic ![bg right:50%](https://j.gifs.com/q7vkm2.gif) --- # Rock Roller http://bit.ly/sasrockroller ![bg right:50%](https://j.gifs.com/1W8vNj.gif) --- # Viya Token Generator https://github.com/sasjs/viyatoken ![bg right:50%](https://j.gifs.com/p80jDr.gif) --- # SASjs Core - Make Services, Folders, Groups & more - Base SAS, Metadata, Viya - `npm install @sasjs/core` --- # SASjs Adapter - Authentication - Bidirectional communication with SAS - `npm install @sasjs/adapter` --- # SASjs CLI - Project Setup - Automated Deployments - `npm install --global @sasjs/cli` --- # `sasjs add` - Define a Target - Client / Secret - App Location (`appLoc`) --- # `sasjs folder` - `sasjs folder create /some/folder -t target` - `sasjs folder move /some/folder /new/folder` - `sasjs folder delete /new/folder` --- # `sasjs run` - `sasjs run code.sas` ![bg right:60% height:450](docs/img/sasjsrun1.png) --- | Command |Description| |:-------:|:----:| | [add](https://cli.sasjs.io/add) | Provides a series of prompts used to define a SAS [target](https://sasjs.io/glossary#target ) along with the relevant connection details (if SAS Viya) | |[build](https://cli.sasjs.io/build) |takes all of the input jobs and services and creates a build pack| |[compile](https://cli.sasjs.io/compile)|Extracts all the dependencies and input programs for each service / job and includes them in a single file ready for deployment| |[context](https://cli.sasjs.io/context)|List, export, create, edit, and delete SAS Compute contexts| |[create](https://cli.sasjs.io/create)| Initialise a SASjs repository, either in plain form or using a range of templates| |[deploy](https://cli.sasjs.io/deploy)|Perform the actual deployment of a SASjs project into SAS 9 or Viya| |[folder](https://cli.sasjs.io/folder)|Management of logical Viya folders| |[job](https://cli.sasjs.io/job)|Manage & Execute SAS Jobs| |[run](https://cli.sasjs.io/run)|Run arbitrary SAS code in a Viya Compute Session, directly from the terminal (or commandline session)| |[servicepack](/servicepack)|The SASjs Service Pack is a collection of services and folder objects. The servicepack command lets you deploy them easily| --- # Allan Bowe, Head of SAS Apps - allan.bowe@analytium.co.uk - https://www.linkedin.com/in/allanbowe/ - https://github.com/sasjs