@sasjs/adapter
    Preparing search index...

    Class default

    SASjs is a JavaScript adapter for SAS.

    Index
    • Checks whether a session is active, or login is required.

      Returns Promise<LoginResultInternal>

      • a promise which resolves with an object containing two values - a boolean isLoggedIn, and a string userName.
    • Creates a compute context on the given server.

      Parameters

      • contextName: string

        the name of the context to be created.

      • launchContextName: string

        the name of the launcher context used by the compute service.

      • sharedAccountId: string

        the ID of the account to run the servers for this context as.

      • autoExecLines: string[]

        the lines of code to execute during session initialization.

      • accessToken: string

        an access token for an authorised user.

      • OptionalauthorisedUsers: string[]

        an optional list of authorised user IDs.

      Returns Promise<Context>

    • Creates a file in the logical SAS folder tree

      Parameters

      • fileName: string

        name of the file to be created.

      • content: Buffer

        content of the file to be created.

      • parentFolderPath: string

        the full path (eg /Public/example/myFolder) of the parent folder.

      • OptionalparentFolderUri: string

        the URI of the parent folder.

      • OptionalaccessToken: string

        the access token to authorizing the request.

      • OptionalsasApiClient: SASViyaApiClient

        a client for interfacing with SAS API.

      Returns Promise<File>

    • Creates a folder in the logical SAS folder tree

      Parameters

      • folderName: string

        name of the folder to be created.

      • parentFolderPath: string

        the full path (eg /Public/example/myFolder) of the parent folder.

      • OptionalparentFolderUri: string

        the URI of the parent folder.

      • OptionalaccessToken: string

        the access token to authorizing the request.

      • OptionalsasApiClient: SASViyaApiClient

        a client for interfacing with SAS API.

      • OptionalisForced: boolean

        flag that indicates if target folder already exists, it and all subfolders have to be deleted. Applicable for SAS VIYA only.

      Returns Promise<Folder>

    • Parameters

      • jobName: string
      • code: string
      • OptionalparentFolderPath: string
      • OptionalparentFolderUri: string
      • OptionalaccessToken: string
      • OptionalsasApiClient: SASViyaApiClient

      Returns Promise<{ etag: string; result: Job }>

    • Creates a launcher context on the given server.

      Parameters

      • contextName: string

        the name of the context to be created.

      • description: string

        the description of the context to be created.

      • launchType: string

        launch type of the context to be created.

      • accessToken: string

        an access token for an authorised user.

      Returns Promise<Context>

    • Parameters

      • contextName: string
      • accessToken: string

      Returns Promise<Session>

    • Parameters

      • clientId: string
      • accessToken: string

      Returns Promise<unknown>

    • Deletes a compute context on the given server.

      Parameters

      • contextName: string

        the name of the context to be deleted.

      • OptionalaccessToken: string

        an access token for an authorised user.

      Returns Promise<{ etag: string; result: Context }>

    • For performance (and in case of accidental error) the deleteFolder function does not actually delete the folder (and all its content and subfolder content). Instead the folder is simply moved to the recycle bin. Deletion time will be added to the folder name.

      Parameters

      • folderPath: string

        the full path (eg /Public/example/deleteThis) of the folder to be deleted.

      • accessToken: string

        an access token for authorizing the request.

      Returns Promise<Folder | undefined>

    • Creates the folders and services at the given location appLoc on the given server serverUrl.

      Parameters

      • serviceJson: any

        the JSON specifying the folders and services to be created.

      • OptionalappLoc: string

        the base folder in which to create the new folders and services. If not provided, is taken from SASjsConfig.

      • OptionalserverUrl: string

        the server on which to deploy the folders and services. If not provided, is taken from SASjsConfig.

      • OptionalaccessToken: string

        an optional access token to be passed in when using this function from the command line.

      • isForced: boolean = false

        flag that indicates if target folder already exists, it and all subfolders have to be deleted.

      Returns Promise<void>

    • Turns off verbose mode to log every HTTP response.

      Returns void

    • Updates a compute context on the given server.

      Parameters

      • contextName: string

        the original name of the context to be deleted.

      • editedContext: EditContextInput

        an object with the properties to be updated.

      • OptionalaccessToken: string

        an access token for an authorised user.

      Returns Promise<{ etag: string; result: Context }>

    • Enables verbose mode that will log a summary of every HTTP response.

      Parameters

      • OptionalsuccessCallBack: (response: AxiosResponse) => AxiosResponse

        function that should be triggered on every HTTP response with the status 2**.

      • OptionalerrorCallBack: (response: AxiosError) => AxiosError

        function that should be triggered on every HTTP response with the status different from 2**.

      Returns void

    • Executes job on SASJS server.

      Parameters

      • query: ExecutionQuery

        an object containing job path and debug level.

      • appLoc: string

        an application path.

      • OptionalauthConfig: AuthConfig

        an object for authentication.

      Returns Promise<{ log: any; result: any } | undefined>

      a promise that resolves into job execution result and log.

    • Executes code on a SAS server.

      Parameters

      • linesOfCode: ExecuteScriptParams

        lines of code to run.

      Returns Promise<any>

    • Fetches content of the log file

      Parameters

      • logUrl: string

        url of the log file.

      • OptionalaccessToken: string

        an access token for an authorised user.

      Returns Promise<string>

    • Exchanges the auth code for an access token for the given client.

      Parameters

      • clientId: string

        the client ID to authenticate with.

      • clientSecret: string

        the client secret to authenticate with.

      • authCode: string

        the auth code received from the server.

      Returns Promise<SasAuthResponse | SASjsAuthResponse>

    • Parameters

      • clientId: string

      Returns Promise<string | null>

    • Returns a JSON representation of a compute context.

      Parameters

      • contextId: string

        an id of the context to return.

      • OptionalaccessToken: string

        an access token for an authorised user.

      Returns Promise<ContextAllAttributes>

    • Returns a JSON representation of a compute context. @example: { "createdBy": "admin", "links": [...], "id": "ID", "version": 2, "name": "context1" }

      Parameters

      • contextName: string

        the name of the context to return.

      • OptionalaccessToken: string

        an access token for an authorised user.

      Returns Promise<Context>

    • Gets compute contexts.

      Parameters

      • accessToken: string

        an access token for an authorised user.

      Returns Promise<{ attributes: {}; createdBy: any; id: any; name: any; version: any }[]>

    • Parameters

      • type: "file" | "general" = 'general'

      Returns CsrfToken | undefined

    • Gets default(system) launcher contexts.

      Returns string[]

    • Gets executable compute contexts.

      Parameters

      • authConfig: AuthConfig

        an access token, refresh token, client and secret for an authorised user.

      Returns Promise<any[]>

    • Fetches the file content for a file in the specified folder.

      Parameters

      • folderPath: string

        the full path to the folder containing the file. eg: /Public/folder1/folder2

      • fileName: string

        the name of the file in the folderPath

      • OptionalaccessToken: string

        an access token for authorizing the request

      Returns Promise<string>

    • Fetches a folder from the SAS file system.

      Parameters

      • folderPath: string

        path of the folder to be fetched.

      • OptionalaccessToken: string

        the access token to authorize the request.

      Returns Promise<unknown>

    • Gets launcher contexts.

      Parameters

      • accessToken: string

        an access token for an authorised user.

      Returns Promise<{ attributes: {}; createdBy: any; id: any; name: any; version: any }[]>

    • Returns the username of the user currently logged in.

      Returns string

    • Lists children folders for given Viya folder.

      Parameters

      • sourceFolder: string

        the full path (eg /Public/example/myFolder) or URI of the source folder listed. Providing URI instead of path will save one extra request.

      • OptionalaccessToken: string

        an access token for authorizing the request.

      • Optionallimit: number
      • returnDetails: boolean = false

        when set to true, the function will return an array of objects with member details, otherwise it will return an array of member names.

      Returns Promise<any[] | undefined>

    • Logs into the SAS server with the supplied credentials.

      Parameters

      • Optionalusername: string

        a string representing the username.

      • Optionalpassword: string

        a string representing the password.

      • OptionalclientId: string

        a string representing the client ID.

      • options: LoginOptions = {}

      Returns Promise<LoginResult>

    • Logs out of the configured SAS server.

      Returns Promise<boolean>

    • Moves folder to a new location. The folder may be renamed at the same time.

      Parameters

      • sourceFolder: string

        the full path (eg /Public/example/myFolder) or URI of the source folder to be moved. Providing URI instead of path will save one extra request.

      • targetParentFolder: string

        the full path or URI of the parent folder to which the sourceFolder will be moved (eg /Public/newDestination). To move a folder, a user has to have write permissions in targetParentFolder. Providing URI instead of path will save one extra request.

      • targetFolderName: string

        the name of the "moved" folder. If left blank, the original folder name will be used (eg myFolder in /Public/newDestination/myFolder for the example above). Optional field.

      • accessToken: string

        an access token for authorizing the request.

      Returns Promise<Folder | undefined>

    • Exchanges the refresh token for an access token for the given client.

      Parameters

      • clientId: string

        the client ID to authenticate with.

      • clientSecret: string

        the client secret to authenticate with.

      • refreshToken: string

        the refresh token received from the server.

      Returns Promise<SasAuthResponse | SASjsAuthResponse>

    • Makes a request to program specified in SASjob (could be a Viya Job, a SAS 9 Stored Process, or a SASjs Server Stored Program). The response object will always contain table names in lowercase, and column names in uppercase. Values are returned formatted by default, unformatted values can be configured as an option in the %webout macro.

      Parameters

      • sasJob: string

        the path to the SAS program (ultimately resolves to the SAS _program parameter to run a Job Definition or SAS 9 Stored Process). Is prepended at runtime with the value of appLoc.

      • data: { [key: string]: any } | null

        a JSON object containing one or more tables to be sent to SAS. For an example of the table structure, see the project README. This value can be null if no inputs are required.

      • config: { [key: string]: any } = {}

        provide any changes to the config here, for instance to enable/disable debug. Any change provided will override the global config, for that particular function call.

      • OptionalloginRequiredCallback: () => any

        a function that is called if the user is not logged in (eg to display a login form). The request will be resubmitted after successful login. When using a loginRequiredCallback, the call to the request will look, for example, like so: await request(sasJobPath, data, config, () => setIsLoggedIn(false)) If you are not passing in any data and configuration, it will look like so: await request(sasJobPath, {}, {}, () => setIsLoggedIn(false))

      • OptionalauthConfig: AuthConfig
      • extraResponseAttributes: ExtraResponseAttributes[] = []

        a array of predefined values that are used to provide extra attributes (same names as those values) to be added in response Supported values are declared in ExtraResponseAttributes type.

      Returns Promise<any>

    • Sets the debug state. Turning this on will enable additional logging in the adapter.

      Parameters

      • value: boolean

        boolean indicating debug state (on/off).

      Returns void

    • Sets the SASjs configuration.

      Parameters

      Returns Promise<void>

    • Sets verbose mode.

      Parameters

      • verboseMode: VerboseMode

        value of the verbose mode, can be true, false or bleached(without extra colors).

      Returns void

    • Kicks off execution of the given job via the compute API.

      Parameters

      • sasJob: string

        the path to the SAS program (ultimately resolves to the SAS _program parameter to run a Job Definition or SAS 9 Stored Process). Is prepended at runtime with the value of appLoc.

      • data: any

        a JSON object containing one or more tables to be sent to SAS. Can be null if no inputs required.

      • config: any = {}

        provide any changes to the config here, for instance to enable/disable debug. Any change provided will override the global config, for that particular function call.

      • OptionalauthConfig: AuthConfig

        a valid client, secret, refresh and access tokens that are authorised to execute compute jobs. The access token is not required when the user is authenticated via the browser.

      • OptionalwaitForResult: boolean

        a boolean that indicates whether the function needs to wait for execution to complete.

      • OptionalpollOptions: PollOptions

        an object that represents poll interval(milliseconds) and maximum amount of attempts. Object example: { maxPollCount: 24 * 60 * 60, pollInterval: 1000 }. More information available at src/api/viya/pollJobState.ts.

      • printPid: boolean = false

        a boolean that indicates whether the function should print (PID) of the started job.

      • Optionalvariables: MacroVar

        an object that represents macro variables.

      • OptionalverboseMode: VerboseMode

        boolean or a string equal to 'bleached' to enable verbose mode (log every HTTP response).

      • OptionalonTokensRefreshed: OnTokensRefreshed

        (optional, SAS Viya only) callback invoked with the rotated token pair after a successful internal refresh, so consumers that persist tokens can store the new pair.

      Returns Promise<any>

      an object representing the compute session created for the given job.

    • Create a tables class containing one or more tables to be sent to SAS.

      Parameters

      • table: Record<string, any>

        initial table data

      • macroName: string

        macro name

      Returns Tables

      Tables class

    • Updates the file content for a file in the specified folder.

      Parameters

      • folderPath: string

        the full path to the folder containing the file. eg: /Public/folder1/folder2

      • fileName: string

        the name of the file in the folderPath

      • content: string

        the new content to be written to the file

      • OptionalaccessToken: string

        an access token for authorizing the request

      Returns Promise<FileResource>

    • Uploads a file to the given service.

      Parameters

      • sasJob: string

        the path to the SAS program (ultimately resolves to the SAS _program parameter to run a Job Definition or SAS 9 Stored Process). Is prepended at runtime with the value of appLoc.

      • files: UploadFile[]

        array of files to be uploaded, including File object and file name.

      • params: { [key: string]: any } | null

        request URL parameters.

      • config: { [key: string]: any } = {}

        provide any changes to the config here, for instance to enable/disable debug. Any change provided will override the global config, for that particular function call.

      • OptionalloginRequiredCallback: () => any

        a function that is called if the user is not logged in (eg to display a login form). The request will be resubmitted after successful login.

      Returns Promise<unknown>