
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
@sap/swa-for-sapbas-vsx
Advanced tools
Javascript module for SWA tracking to be consumed by VsCode extensions
Wrapper for SWA meant to be used in Visual code and SAP Application Studio.
npm install @sap/swa-for-sapbas-vsx
Everything in the environment should be set up, if using in AppStudio please make sure swa-chart is installed as a ws-ext
There are only two functions to call for usage
import { SWATracker } from '@sap/swa-for-sapbas-vsx';
Has 3 params that are detailed in the constructor call:
/**
* constructor
* @param vsxPublisher should be publisher in package.json
* @param vsxPackageName should be extension package.json name
* @param errorListener callback for error, one such callback for all the errors we receive via all the track methods err can be string (err.message) or number (response.statusCode)
*/
var myErrorListener = (err) => { myErrorHandling(err); }
swa = new SWATracker("My Vscode Ext Publisher","My Package name", myErrorListener)
NOTE
The vsxPublisher and vsxPackageName values passed to SWA Tracker constructor must be exact strings as they appear in the extension package.json. Otherwise, the usage data is not reported when extension is running in VS Code.
After creating a new swa class as detailed above usage is pretty simple
/**
* Send event to SWA for tracking
* @param eventType string detailing what event are you looking to track (ex. "Generator Success!")
* @param {string[]} [custom_events] Optional, can accept up to 5, any more will be ignored
*/
swa.track("myEvent", ["custom event 1", "custom event 2", "This array is optional"]);
import * as vscode from 'vscode';
import {SWATracker} from "@sap/swa-for-sapbas-vsx";
// this method is called when your extension is activated
// your extension is activated the very first time the command is executed
export function activate(context: vscode.ExtensionContext) {
const swa = new SWATracker("SAP", "vscode-close-editor", (err : string|number) => {console.log(err);});
let cmd_closeActiveEditor = vscode.commands.registerCommand('extension.closeActiveEditor', () => {
vscode.commands.executeCommand("workbench.action.closeActiveEditor");
// Note that I don't have any custom events so I don't send an extra array
swa.track("Close Active Editor");
});
...
...
If you have a VS Code extension that is released to VS Code marketplace and you would like to collect its usage when it runs in VS Code, do the following:
/**
* constructor
* @param vsxPublisher should be publisher in package.json
* @param vsxPackageName should be extension package.json name
* @param errorListener callback for error, one such callback for all the errors we receive via all the track methods err can be string (err.message) or number (response.statusCode)
*/
var myErrorListener = (err) => { myErrorHandling(err); }
swa = new SWATracker("My Vscode Ext Publisher","My Package name", myErrorListener)
NOTE
If you need to change vsxPublisher and vsxPackageName values after you already have SWA reports presenting the usage data, do not forget to adjust these reports considering the changed publisher info. For example, if you use “Custom event parameter 10” in report filter definition, you should specify both old and new values to see the data from the extension.
...
"<Your package name>.enableSapWebAnalytics": {
"type": "boolean",
"default": true,
"description": "Enable collecting usage analytics data for <Your Tool Name>. If enabled, non-personally identifiable information is used to help understand the product usage and improve the tool.",
"scope": "resource"
}
...
The tool collects non-personally identifiable information about your usage of the tool to improve its services. If you do not want the tool to collect your usage data, you can set the "Enable Sap Web Analytics" setting to "false". Go to File > Preferences > Settings (macOS: Code > Preferences > Settings) > Extensions > <Tool Name>, and deselect the "Enable Sap Web Analytics" checkbox.
The following fields can be used for creating SWA reports:
SWA Field | Origin |
---|---|
eventType | The "myEvent" parameter sent via track API |
user | Hashed user ID unless privacy is activated, then "na" |
Custom event parameter 1 | Event additional data 1, "custom event 1" sent via track API |
Custom event parameter 2 | Event additional data 2, "custom event 2" sent via track API |
Custom event parameter 3 | Event additional data 3, "custom event 3" sent via track API |
Custom event parameter 4 | Event additional data 4, "custom event 4" sent via track API |
Custom event parameter 5 | Event additional data 5, "custom event 5" sent via track API |
Custom event parameter 6 | IAAS (aws,ali,azure), set by the lib automatically |
Custom event parameter 7 | Datacenter (stg10.int, cry10.int, ap21, prd40), set by the lib automatically |
Custom event parameter 8 | Version (currently not supported), set by the lib automatically |
Custom event parameter 9 | Is SAP User where allowed, empty overwise, set by the lib automatically |
Custom event parameter 10 | The unique caller ID "vsxPublisher.vsxPackageName", set by lib automatically |
FAQs
Typescript module for Azure Application Insights to be consumed by VSCode extensions
We found that @sap/swa-for-sapbas-vsx demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.