sasjs-server

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

@sasjs/server

@sasjs/server

SASjs Server is an open-source NodeJS wrapper for calling the SAS binary executable. It runs on a real SAS server or a local desktop and provides:
  • A filesystem (SASjs Drive) for storing SAS programs and content
  • Execution of Stored Programs from a URL (equivalent to SAS 9 Stored Processes / Viya Jobs)
  • Web app streaming (serve frontend apps straight from SAS content)
  • A REST API with Swagger docs
  • Portability: apps built for SASjs Server deploy unchanged to SAS 9 / Viya via @sasjs/cli
SASjs Server 是一款用于调用SAS二进制可执行文件的开源NodeJS包装器。它可运行在真实SAS服务器或本地桌面环境中,提供以下功能:
  • 文件系统(SASjs Drive):用于存储SAS程序及相关内容
  • 从URL执行存储程序(等效于SAS 9存储过程 / Viya Jobs)
  • Web应用流服务:直接从SAS内容中提供前端应用服务
  • 带有Swagger文档的REST API
  • 可移植性:为SASjs Server构建的应用可通过@sasjs/cli无修改部署至SAS 9 / Viya环境

Modes

运行模式

  • Desktop mode (
    MODE=desktop
    , default): single-user, no authentication, no database. CORS enabled by default.
  • Server mode (
    MODE=server
    ): multi-user with authentication, requires a database (
    DB_CONNECT
    ,
    DB_TYPE=mongodb|cosmos_mongodb
    ). CORS disabled by default — configure
    WHITELIST
    if enabling.
  • 桌面模式
    MODE=desktop
    ,默认):单用户模式,无需认证,无数据库。默认启用CORS。
  • 服务器模式
    MODE=server
    ):多用户模式,支持认证,需要数据库(
    DB_CONNECT
    DB_TYPE=mongodb|cosmos_mongodb
    )。默认禁用CORS——若需启用,请配置
    WHITELIST

Installation

安装

Download the relevant zip from GitHub releases and run the packaged executable (
api-linux
, etc.):
bash
curl -L https://github.com/sasjs/server/releases/latest/download/linux.zip > linux.zip
unzip linux.zip && ./api-linux
On first run it prompts (unless set as env vars) for the SAS executable path and the filesystem location for Stored Programs/temp files. Docker is also supported (
DockerfileApi
, docker-compose files in the repo).
从GitHub发布页面下载对应系统的压缩包,运行打包后的可执行文件(如
api-linux
等):
bash
curl -L https://github.com/sasjs/server/releases/latest/download/linux.zip > linux.zip
unzip linux.zip && ./api-linux
首次运行时(除非已通过环境变量设置),会提示输入SAS可执行文件路径以及存储程序/临时文件的文件系统位置。同时支持Docker部署(仓库中提供
DockerfileApi
和docker-compose文件)。

Configuration via environment variables

通过环境变量配置

Set in
/etc/environment
, exported, prepended to the command, or in a
.env
file alongside the executable. Key variables:
VariablePurpose
MODE
desktop
(default) or
server
SAS_PATH
Path to
sas.exe
/
sas.sh
RUN_TIMES
Comma-separated runtime priority, e.g.
sas,js,py
— options:
sas
,
js
,
py
,
r
. Each needs its path:
SAS_PATH
,
NODE_PATH
,
PYTHON_PATH
,
R_PATH
SASJS_ROOT
Working directory: SAS WORK, staged files, drive, config
DRIVE_LOCATION
Location for files, sasjs packages,
appStreamConfig.json
PROTOCOL
/
PORT
http
(default) or
https
(needs
PRIVATE_KEY
,
CERT_CHAIN
, optional
CA_ROOT
); default port 5000
SAS_OPTIONS
/
SASV9_OPTIONS
Extra SAS system options auto-applied to sessions (Windows vs Unix), e.g.
-NOXCMD
DB_CONNECT
/
DB_TYPE
MongoDB connection string / type — required for server mode
AUTH_PROVIDERS
+
LDAP_*
LDAP auth:
LDAP_URL
,
LDAP_BIND_DN
,
LDAP_BIND_PASSWORD
,
LDAP_USERS_BASE_DN
,
LDAP_GROUPS_BASE_DN
CORS
/
WHITELIST
Enable CORS and whitelist space-separated origins
MOCK_SERVERTYPE
/
STATIC_MOCK_LOCATION
Emulate
sas9
/
sasviya
API responses for frontend testing against a sasjs server
可在
/etc/environment
中设置、通过export导出、在命令前添加,或在可执行文件旁的
.env
文件中配置。关键变量如下:
变量名用途
MODE
运行模式:
desktop
(默认)或
server
SAS_PATH
sas.exe
/
sas.sh
的路径
RUN_TIMES
逗号分隔的运行时优先级,例如
sas,js,py
——可选值:
sas
js
py
r
。每个运行时需配置对应路径:
SAS_PATH
NODE_PATH
PYTHON_PATH
R_PATH
SASJS_ROOT
工作目录:包含SAS WORK、暂存文件、SASjs Drive、配置文件
DRIVE_LOCATION
文件、sasjs包、
appStreamConfig.json
的存储位置
PROTOCOL
/
PORT
协议:
http
(默认)或
https
(需配置
PRIVATE_KEY
CERT_CHAIN
,可选
CA_ROOT
);默认端口5000
SAS_OPTIONS
/
SASV9_OPTIONS
自动应用于会话的额外SAS系统选项(Windows与Unix系统有所不同),例如
-NOXCMD
DB_CONNECT
/
DB_TYPE
MongoDB连接字符串/类型——服务器模式下必填
AUTH_PROVIDERS
+
LDAP_*
LDAP认证相关配置:
LDAP_URL
LDAP_BIND_DN
LDAP_BIND_PASSWORD
LDAP_USERS_BASE_DN
LDAP_GROUPS_BASE_DN
CORS
/
WHITELIST
启用CORS并配置空格分隔的源白名单
MOCK_SERVERTYPE
/
STATIC_MOCK_LOCATION
模拟
sas9
/
sasviya
API响应,用于基于sasjs server的前端测试

Developing against the API

基于API开发

  • Server type for @sasjs/adapter / CLI targets is
    SASJS
    (
    serverType: 'SASJS'
    ); auth is token-based.
  • The REST API is self-documented via Swagger on the running instance.
  • Server-side execution uses
    ms_*
    macros from @sasjs/core (e.g.
    ms_createfile
    ,
    ms_adduser2group
    ) — services/jobs deployed by the CLI work as on other platforms.
  • Repo layout (for contributors):
    api/
    (Express/TypeScript backend: controllers, routes, middlewares, model),
    web/
    (frontend),
    restClient/
    (REST examples),
    mongo-seed/
    (server-mode DB seed).
  • @sasjs/adapter / CLI目标的服务器类型为
    SASJS
    serverType: 'SASJS'
    );认证方式为基于令牌的认证。
  • 运行实例上的Swagger文档可自动生成REST API的自描述内容。
  • 服务器端执行使用@sasjs/core中的
    ms_*
    宏(例如
    ms_createfile
    ms_adduser2group
    )——CLI部署的服务/作业在其他平台上同样可用。
  • 仓库结构(面向贡献者):
    api/
    (Express/TypeScript后端:控制器、路由、中间件、模型)、
    web/
    (前端)、
    restClient/
    (REST示例)、
    mongo-seed/
    (服务器模式数据库种子数据)。