diff --git a/README.md b/README.md index 7fe2c420..de89b664 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,24 @@ npm install --save @dapr/dapr-dev Visit [https://docs.dapr.io/developing-applications/sdks/js/](https://docs.dapr.io/developing-applications/sdks/js/) to view the full documentation. +## Installation Analytics + +`@dapr/dapr` includes [`@scarf/scarf`](https://github.com/scarf-sh/scarf-js), which reports basic, anonymized install information (operating system, package name and version) to help Dapr maintainers understand SDK adoption. It only runs at install time — there is no runtime footprint and no data collection after installation. Scarf uses the request IP for company-level aggregation and does not store it. + +To opt out, set either environment variable before installing: + +```bash +export SCARF_ANALYTICS=false +# or +export DO_NOT_TRACK=1 +``` + +or add the following to your project's `package.json`: + +```json +"scarfSettings": { "enabled": false } +``` + ## Community There are multiple ways to get involved with the SDK community, please see [wiki/Community-engagement](https://github.com/dapr/js-sdk/wiki/Community-engagement) for more information. diff --git a/package-lock.json b/package-lock.json index 76117aa6..0403c9bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "@dapr/durabletask-js": "^1.0.0", "@grpc/grpc-js": "^1.12.5", "@js-temporal/polyfill": "^0.3.0", + "@scarf/scarf": "^1.4.0", "@types/google-protobuf": "^3.15.5", "@types/node-fetch": "^2.6.2", "body-parser": "^1.19.0", @@ -1644,6 +1645,13 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.1.tgz", "integrity": "sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==" }, + "node_modules/@scarf/scarf": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz", + "integrity": "sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==", + "hasInstallScript": true, + "license": "Apache-2.0" + }, "node_modules/@sec-ant/readable-stream": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", @@ -10034,6 +10042,11 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.1.tgz", "integrity": "sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==" }, + "@scarf/scarf": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz", + "integrity": "sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==" + }, "@sec-ant/readable-stream": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", diff --git a/package.json b/package.json index 2f975f02..282e66a0 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,10 @@ "keywords": [], "author": "Dapr Authors", "license": "apache-2.0", + "scarfSettings": { + "defaultOptIn": true, + "allowTopLevel": false + }, "dependencies": { "@bufbuild/protobuf": "^2.9.0", "@connectrpc/connect": "^2.1.0", @@ -62,6 +66,7 @@ "@dapr/durabletask-js": "^1.0.0", "@grpc/grpc-js": "^1.12.5", "@js-temporal/polyfill": "^0.3.0", + "@scarf/scarf": "^1.4.0", "@types/google-protobuf": "^3.15.5", "@types/node-fetch": "^2.6.2", "body-parser": "^1.19.0",