Skip to content

Components

SASjs is "batteries included": six pieces that cover building, running and delivering a SAS application. Each one stands on its own - you can adopt the lint rules without the CLI, or the CLI without the adapter - and they are designed to work together.

At a glance

Component Package Runs Does
CLI @sasjs/cli Node, terminal or CI Compiles, builds, deploys, tests, lints, documents
Macro Core @sasjs/core Inside SAS The macros services are written with
Adapter @sasjs/adapter Browser or Node Talks to SAS from JavaScript
Server @sasjs/server Node + a SAS binary A REST API, drive and app portal on Foundation SAS
Lint @sasjs/lint Node, editor SAS code-quality rules
VS Code extension Editor Highlighting, lint, execution, build and deploy
  • CLI


    create, compile, build, deploy, test, lint, doc - the project, from the terminal or a pipeline.

  • Macro Core


    About 200 SAS macros: JSON output, table transfer, metadata, file operations, error handling.

  • Adapter


    One JavaScript API for Viya, SAS 9 and server: auth, service calls, tables, files, streamed apps.

  • Server


    An open-source web server on the SAS binary - a REST API, a drive, and an app portal.

  • Lint


    Configurable code-quality rules, in the editor and in CI, from one .sasjslint.

  • VS Code


    Highlighting, lint diagnostics, execution and the build commands, in the editor.

How they fit together

   your service (.sas)  +  macro core  ->  sasjs compile  ->  compiled program
                                                                   |
                        sasjs build  ->  artefact per target  <----+
                                                                   |
   sasjs deploy  ->  Viya jobs  |  SAS 9 stored processes  |  SASjs Server drive
                                                                   |
   browser / Node app  -- adapter -->  the deployed service  <------+

The compiler embeds the macros a service uses, so the program that runs in production carries its own dependencies at the version that was reviewed - there is no SASAUTOS on the server to disagree with the repository.

The next step depends on what you are building: services for a backend called from a browser, React or Angular for a full application, or Backend SAS for a delivery pipeline.