mirror of
https://github.com/sasjs/adapter.git
synced 2026-01-03 02:30:06 +00:00
88 lines
3.1 KiB
TypeScript
88 lines
3.1 KiB
TypeScript
import * as https from 'https'
|
|
import { ServerType } from '@sasjs/utils/types'
|
|
import { VerboseMode } from '../types'
|
|
|
|
/**
|
|
* Specifies the configuration for the SASjs instance - eg where and how to
|
|
* connect to SAS.
|
|
*/
|
|
export class SASjsConfig {
|
|
/**
|
|
* The location (including http protocol and port) of the SAS Server.
|
|
* Can be omitted, eg if serving directly from the SAS Web Server or being
|
|
* streamed.
|
|
*/
|
|
serverUrl: string = ''
|
|
/**
|
|
* The location of the STP Process Web Application. By default the adapter
|
|
* will use '/SASjsApi/stp/execute' on SAS JS.
|
|
*/
|
|
pathSASJS: string = ''
|
|
/**
|
|
* The location of the Stored Process Web Application. By default the adapter
|
|
* will use '/SASStoredProcess/do' on SAS 9.
|
|
*/
|
|
pathSAS9: string = ''
|
|
/**
|
|
* The location of the Job Execution Web Application. By default the adapter
|
|
* will use '/SASJobExecution' on SAS Viya.
|
|
*/
|
|
pathSASViya: string = ''
|
|
/**
|
|
* The appLoc is the parent folder under which the SAS services (STPs or Job
|
|
* Execution Services) are stored. We recommend that each app is stored in
|
|
* a dedicated parent folder (the appLoc) and the services are grouped inside
|
|
* subfolders within the appLoc - allowing functionality to be restricted
|
|
* according to those groups at backend.
|
|
* When using appLoc, the paths provided in the `request` function should be
|
|
* _without_ a leading slash (/).
|
|
*/
|
|
appLoc: string = ''
|
|
/**
|
|
* Can be `SAS9` or `SASVIYA`.
|
|
*/
|
|
serverType: ServerType | null = null
|
|
/**
|
|
* Set to `true` to enable additional debugging.
|
|
*/
|
|
debug: boolean = true
|
|
/**
|
|
* Set to `true` to enable verbose mode that will log a summary of every HTTP response.
|
|
*/
|
|
verbose?: VerboseMode = true
|
|
/**
|
|
* The name of the compute context to use when calling the Viya services directly.
|
|
* Example value: 'SAS Job Execution compute context'
|
|
*/
|
|
contextName: string = ''
|
|
/**
|
|
* If it's `false` adapter will use the JES API as connection approach. To enhance VIYA
|
|
* performance, set to `true` and provide a `contextName` on which to run
|
|
* the code. When running on a named context, the code executes under the
|
|
* user identity. When running as a Job Execution service, the code runs
|
|
* under the identity in the JES context. If `useComputeApi` is `null` or `undefined`, the service will run as a Job, except
|
|
* triggered using the APIs instead of the Job Execution Web Service broker.
|
|
*/
|
|
useComputeApi: boolean | null = null
|
|
/**
|
|
* Optional setting to configure HTTPS Agent.
|
|
* By providing `key`, `cert`, `ca` to connect with server
|
|
* Other options can be set `rejectUnauthorized` and `requestCert`
|
|
*/
|
|
httpsAgentOptions?: https.AgentOptions
|
|
/**
|
|
* Supported login mechanisms are - Redirected and Default
|
|
*/
|
|
loginMechanism: LoginMechanism = LoginMechanism.Default
|
|
/**
|
|
* Optional setting to configure request history limit. Increasing this limit
|
|
* may affect browser performance, especially with debug (logs) enabled.
|
|
*/
|
|
requestHistoryLimit?: number = 10
|
|
}
|
|
|
|
export enum LoginMechanism {
|
|
Default = 'Default',
|
|
Redirected = 'Redirected'
|
|
}
|