Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@transcend-io/cli

Package Overview
Dependencies
Maintainers
7
Versions
263
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@transcend-io/cli - npm Package Compare versions

Comparing version 2.2.5 to 3.0.0

5

build/cli-discover-silos.js

@@ -15,3 +15,3 @@ #!/usr/bin/env node

/**
* Sync data silo configuration from Transcend down locally to disk
* Scan dependency files for new data silos.
*

@@ -51,5 +51,6 @@ * Dev Usage:

// Indicate success
logger_1.logger.info(colors_1.default.green(`Scan found ${results.length} potential data silos at ${scanPath}! View at ${constants_1.ADMIN_DASH}`));
logger_1.logger.info(colors_1.default.green(`Scan found ${results.length} potential data silos at ${scanPath}! ` +
`View at ${constants_1.ADMIN_DASH}/data-map/data-inventory/silo-discovery/triage`));
}
main();
//# sourceMappingURL=cli-discover-silos.js.map

202

build/codecs.d.ts

@@ -65,3 +65,3 @@ import * as t from 'io-ts';

*/
export declare const ProcessingPurposeInput: t.IntersectionC<[t.TypeC<{
export declare const ProcessingPurposeInput: t.TypeC<{
/** The parent purpose */

@@ -83,6 +83,5 @@ purpose: t.KeyofC<{

}>;
}>, t.PartialC<{
/** User-defined name for this processing purpose sub category. If not specified, will fall back to 'Other' */
/** User-defined name for this processing purpose sub category */
name: t.StringC;
}>]>;
}>;
/** Type override */

@@ -93,3 +92,3 @@ export declare type ProcessingPurposeInput = t.TypeOf<typeof ProcessingPurposeInput>;

*/
export declare const DataCategoryInput: t.IntersectionC<[t.TypeC<{
export declare const DataCategoryInput: t.TypeC<{
/** The parent category */

@@ -113,6 +112,5 @@ category: t.KeyofC<{

}>;
}>, t.PartialC<{
/** User-defined name for this sub category. If not specified, will fall back to 'Other' */
/** User-defined name for this sub category */
name: t.StringC;
}>]>;
}>;
/** Type override */

@@ -137,3 +135,3 @@ export declare type DataCategoryInput = t.TypeOf<typeof DataCategoryInput>;

*/
purposes: t.ArrayC<t.IntersectionC<[t.TypeC<{
purposes: t.ArrayC<t.TypeC<{
/** The parent purpose */

@@ -155,6 +153,5 @@ purpose: t.KeyofC<{

}>;
}>, t.PartialC<{
/** User-defined name for this processing purpose sub category. If not specified, will fall back to 'Other' */
/** User-defined name for this processing purpose sub category */
name: t.StringC;
}>]>>;
}>>;
/**

@@ -165,3 +162,3 @@ * The category of personal data for this datapoint

*/
categories: t.ArrayC<t.IntersectionC<[t.TypeC<{
categories: t.ArrayC<t.TypeC<{
/** The parent category */

@@ -185,6 +182,5 @@ category: t.KeyofC<{

}>;
}>, t.PartialC<{
/** User-defined name for this sub category. If not specified, will fall back to 'Other' */
/** User-defined name for this sub category */
name: t.StringC;
}>]>>;
}>>;
}>]>;

@@ -209,46 +205,2 @@ /** Type override */

/**
* What is the purpose of processing for this datapoint/table?
*
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
* @deprecated - The purpose labels are now associated with fields rather than datapoints to allow for more granularity
*/
purpose: t.KeyofC<{
ESSENTIAL: unknown;
ADDITIONAL_FUNCTIONALITY: unknown;
ADVERTISING: unknown;
MARKETING: unknown;
ANALYTICS: unknown;
PERSONALIZATION: unknown;
OPERATION_SECURITY: unknown;
LEGAL: unknown;
TRANSFER: unknown;
SALE: unknown;
HR: unknown;
OTHER: unknown;
UNSPECIFIED: unknown;
}>;
/**
* The category of personal data for this datapoint
*
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
* @deprecated - The category labels are now associated with fields rather than datapoints to allow for more granularity
*/
category: t.KeyofC<{
OTHER: unknown;
UNSPECIFIED: unknown;
FINANCIAL: unknown;
HEALTH: unknown;
CONTACT: unknown;
LOCATION: unknown;
DEMOGRAPHIC: unknown;
ID: unknown;
ONLINE_ACTIVITY: unknown;
USER_PROFILE: unknown;
SOCIAL_MEDIA: unknown;
CONNECTION: unknown;
TRACKING: unknown;
DEVICE: unknown;
SURVEY: unknown;
}>;
/**
* The SQL queries that should be run for that datapoint in a privacy request.

@@ -302,3 +254,3 @@ *

*/
purposes: t.ArrayC<t.IntersectionC<[t.TypeC<{
purposes: t.ArrayC<t.TypeC<{
/** The parent purpose */

@@ -320,6 +272,5 @@ purpose: t.KeyofC<{

}>;
}>, t.PartialC<{
/** User-defined name for this processing purpose sub category. If not specified, will fall back to 'Other' */
/** User-defined name for this processing purpose sub category */
name: t.StringC;
}>]>>;
}>>;
/**

@@ -330,3 +281,3 @@ * The category of personal data for this datapoint

*/
categories: t.ArrayC<t.IntersectionC<[t.TypeC<{
categories: t.ArrayC<t.TypeC<{
/** The parent category */

@@ -350,6 +301,5 @@ category: t.KeyofC<{

}>;
}>, t.PartialC<{
/** User-defined name for this sub category. If not specified, will fall back to 'Other' */
/** User-defined name for this sub category */
name: t.StringC;
}>]>>;
}>>;
}>]>>;

@@ -424,46 +374,2 @@ }>]>;

/**
* What is the purpose of processing for this datapoint/table?
*
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
* @deprecated - The purpose labels are now associated with fields rather than datapoints to allow for more granularity
*/
purpose: t.KeyofC<{
ESSENTIAL: unknown;
ADDITIONAL_FUNCTIONALITY: unknown;
ADVERTISING: unknown;
MARKETING: unknown;
ANALYTICS: unknown;
PERSONALIZATION: unknown;
OPERATION_SECURITY: unknown;
LEGAL: unknown;
TRANSFER: unknown;
SALE: unknown;
HR: unknown;
OTHER: unknown;
UNSPECIFIED: unknown;
}>;
/**
* The category of personal data for this datapoint
*
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
* @deprecated - The category labels are now associated with fields rather than datapoints to allow for more granularity
*/
category: t.KeyofC<{
OTHER: unknown;
UNSPECIFIED: unknown;
FINANCIAL: unknown;
HEALTH: unknown;
CONTACT: unknown;
LOCATION: unknown;
DEMOGRAPHIC: unknown;
ID: unknown;
ONLINE_ACTIVITY: unknown;
USER_PROFILE: unknown;
SOCIAL_MEDIA: unknown;
CONNECTION: unknown;
TRACKING: unknown;
DEVICE: unknown;
SURVEY: unknown;
}>;
/**
* The SQL queries that should be run for that datapoint in a privacy request.

@@ -517,3 +423,3 @@ *

*/
purposes: t.ArrayC<t.IntersectionC<[t.TypeC<{
purposes: t.ArrayC<t.TypeC<{
/** The parent purpose */

@@ -535,6 +441,5 @@ purpose: t.KeyofC<{

}>;
}>, t.PartialC<{
/** User-defined name for this processing purpose sub category. If not specified, will fall back to 'Other' */
/** User-defined name for this processing purpose sub category */
name: t.StringC;
}>]>>;
}>>;
/**

@@ -545,3 +450,3 @@ * The category of personal data for this datapoint

*/
categories: t.ArrayC<t.IntersectionC<[t.TypeC<{
categories: t.ArrayC<t.TypeC<{
/** The parent category */

@@ -565,6 +470,5 @@ category: t.KeyofC<{

}>;
}>, t.PartialC<{
/** User-defined name for this sub category. If not specified, will fall back to 'Other' */
/** User-defined name for this sub category */
name: t.StringC;
}>]>>;
}>>;
}>]>>;

@@ -678,46 +582,2 @@ }>]>>;

/**
* What is the purpose of processing for this datapoint/table?
*
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
* @deprecated - The purpose labels are now associated with fields rather than datapoints to allow for more granularity
*/
purpose: t.KeyofC<{
ESSENTIAL: unknown;
ADDITIONAL_FUNCTIONALITY: unknown;
ADVERTISING: unknown;
MARKETING: unknown;
ANALYTICS: unknown;
PERSONALIZATION: unknown;
OPERATION_SECURITY: unknown;
LEGAL: unknown;
TRANSFER: unknown;
SALE: unknown;
HR: unknown;
OTHER: unknown;
UNSPECIFIED: unknown;
}>;
/**
* The category of personal data for this datapoint
*
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
* @deprecated - The category labels are now associated with fields rather than datapoints to allow for more granularity
*/
category: t.KeyofC<{
OTHER: unknown;
UNSPECIFIED: unknown;
FINANCIAL: unknown;
HEALTH: unknown;
CONTACT: unknown;
LOCATION: unknown;
DEMOGRAPHIC: unknown;
ID: unknown;
ONLINE_ACTIVITY: unknown;
USER_PROFILE: unknown;
SOCIAL_MEDIA: unknown;
CONNECTION: unknown;
TRACKING: unknown;
DEVICE: unknown;
SURVEY: unknown;
}>;
/**
* The SQL queries that should be run for that datapoint in a privacy request.

@@ -771,3 +631,3 @@ *

*/
purposes: t.ArrayC<t.IntersectionC<[t.TypeC<{
purposes: t.ArrayC<t.TypeC<{
/** The parent purpose */

@@ -789,6 +649,5 @@ purpose: t.KeyofC<{

}>;
}>, t.PartialC<{
/** User-defined name for this processing purpose sub category. If not specified, will fall back to 'Other' */
/** User-defined name for this processing purpose sub category */
name: t.StringC;
}>]>>;
}>>;
/**

@@ -799,3 +658,3 @@ * The category of personal data for this datapoint

*/
categories: t.ArrayC<t.IntersectionC<[t.TypeC<{
categories: t.ArrayC<t.TypeC<{
/** The parent category */

@@ -819,6 +678,5 @@ category: t.KeyofC<{

}>;
}>, t.PartialC<{
/** User-defined name for this sub category. If not specified, will fall back to 'Other' */
/** User-defined name for this sub category */
name: t.StringC;
}>]>>;
}>>;
}>]>>;

@@ -825,0 +683,0 @@ }>]>>;

@@ -78,25 +78,17 @@ "use strict";

*/
exports.ProcessingPurposeInput = t.intersection([
t.type({
/** The parent purpose */
purpose: (0, type_utils_1.valuesOf)(privacy_types_1.ProcessingPurpose),
}),
t.partial({
/** User-defined name for this processing purpose sub category. If not specified, will fall back to 'Other' */
name: t.string,
}),
]);
exports.ProcessingPurposeInput = t.type({
/** The parent purpose */
purpose: (0, type_utils_1.valuesOf)(privacy_types_1.ProcessingPurpose),
/** User-defined name for this processing purpose sub category */
name: t.string,
});
/**
* The data category for a field
*/
exports.DataCategoryInput = t.intersection([
t.type({
/** The parent category */
category: (0, type_utils_1.valuesOf)(privacy_types_1.DataCategoryType),
}),
t.partial({
/** User-defined name for this sub category. If not specified, will fall back to 'Other' */
name: t.string,
}),
]);
exports.DataCategoryInput = t.type({
/** The parent category */
category: (0, type_utils_1.valuesOf)(privacy_types_1.DataCategoryType),
/** User-defined name for this sub category */
name: t.string,
});
/**

@@ -148,16 +140,2 @@ * Annotate specific fields within a datapoint. These are often database table columns.

/**
* What is the purpose of processing for this datapoint/table?
*
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
* @deprecated - The purpose labels are now associated with fields rather than datapoints to allow for more granularity
*/
purpose: (0, type_utils_1.valuesOf)(privacy_types_1.ProcessingPurpose),
/**
* The category of personal data for this datapoint
*
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
* @deprecated - The category labels are now associated with fields rather than datapoints to allow for more granularity
*/
category: (0, type_utils_1.valuesOf)(privacy_types_1.DataCategoryType),
/**
* The SQL queries that should be run for that datapoint in a privacy request.

@@ -164,0 +142,0 @@ *

@@ -189,20 +189,10 @@ "use strict";

const fields = datapoint.fields
? datapoint.fields.map((field) => {
var _a, _b;
const categoriesWithFallback = (_a = field.categories) === null || _a === void 0 ? void 0 : _a.map((category) => ({
name: 'Other',
...category,
}));
const purposesWithFallback = (_b = field.purposes) === null || _b === void 0 ? void 0 : _b.map((purpose) => ({
name: 'Other',
...purpose,
}));
// TODO: Support setting title separately from the 'key/name'
return {
name: field.key,
description: field.description,
categories: categoriesWithFallback,
purposes: purposesWithFallback,
};
})
? datapoint.fields.map(({ key, description, categories, purposes }) =>
// TODO: Support setting title separately from the 'key/name'
({
name: key,
description,
categories,
purposes,
}))
: undefined;

@@ -217,3 +207,2 @@ if (fields && fields.length > 0) {

description: datapoint.description,
category: datapoint.category,
querySuggestions: !datapoint['privacy-action-queries']

@@ -225,3 +214,2 @@ ? undefined

})),
purpose: datapoint.purpose,
enabledActions: datapoint['privacy-actions'] || [],

@@ -228,0 +216,0 @@ subDataPoints: fields,

@@ -5,3 +5,3 @@ {

"description": "Small package containing useful typescript utilities.",
"version": "2.2.5",
"version": "3.0.0",
"homepage": "https://github.com/transcend-io/cli",

@@ -8,0 +8,0 @@ "repository": {

@@ -15,2 +15,3 @@ <!-- START doctoc generated TOC please keep comment here to allow auto update -->

- [Dynamic Variables](#dynamic-variables)
- [tr-scan](#tr-scan)

@@ -36,2 +37,3 @@ <!-- END doctoc generated TOC please keep comment here to allow auto update -->

yarn tr-push --auth=xxx
yarn tr-scan --auth=xxx
```

@@ -48,2 +50,3 @@

tr-push --auth=xxx
tr-scan --auth=xxx
```

@@ -60,2 +63,3 @@

tr-push --auth=xxx
tr-scan --auth=xxx
```

@@ -306,1 +310,16 @@

```
### tr-scan
Transcend can help scan dependency management files to help detect new data silos where you may be storing user personal data. Currently we support scanning for new data silos in package.json, but soon we will be adding more!
To get started, you'll need to add a data silo with "silo discovery" plugin enabled. You can do this in the Transcend admin-dashboard (or via this CLI tooling).
Then, you'll need to grab that `dataSiloId` and pass it to the CLI:
```sh
# Scan a javascript project (package.json files) to look for new data silos
yarn tr-scan --scanPath=./myJavascriptProject --auth=asd123 --dataSiloId=abcdefg
```
This call will look for all the package.json files that in the scan path `./myJavascriptProject`, parse each of the dependencies into their individual package names, and send it to our Transcend backend for classification. These classifications can then be viewed [here](https://app.transcend.io/data-map/data-inventory/silo-discovery/triage).

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc