@aws-cdk/aws-s3
Advanced tools
Comparing version 0.8.1 to 0.8.2
import iam = require('@aws-cdk/aws-iam'); | ||
import kms = require('@aws-cdk/aws-kms'); | ||
import { IBucketNotificationDestination } from '@aws-cdk/aws-s3-notifications'; | ||
import cdk = require('@aws-cdk/cdk'); | ||
@@ -201,2 +202,3 @@ import { BucketPolicy } from './bucket-policy'; | ||
private readonly versioned?; | ||
private readonly notifications; | ||
constructor(parent: cdk.Construct, name: string, props?: BucketProps); | ||
@@ -210,2 +212,40 @@ /** | ||
/** | ||
* Adds a bucket notification event destination. | ||
* @param event The event to trigger the notification | ||
* @param dest The notification destination (Lambda, SNS Topic or SQS Queue) | ||
* | ||
* @param filters S3 object key filter rules to determine which objects | ||
* trigger this event. Each filter must include a `prefix` and/or `suffix` | ||
* that will be matched against the s3 object key. Refer to the S3 Developer Guide | ||
* for details about allowed filter rules. | ||
* | ||
* @see https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-filtering | ||
* | ||
* @example | ||
* | ||
* bucket.onEvent(EventType.OnObjectCreated, myLambda, 'home/myusername/*') | ||
* | ||
* @see | ||
* https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html | ||
*/ | ||
onEvent(event: EventType, dest: IBucketNotificationDestination, ...filters: NotificationKeyFilter[]): void; | ||
/** | ||
* Subscribes a destination to receive notificatins when an object is | ||
* created in the bucket. This is identical to calling | ||
* `onEvent(EventType.ObjectCreated)`. | ||
* | ||
* @param dest The notification destination (see onEvent) | ||
* @param filters Filters (see onEvent) | ||
*/ | ||
onObjectCreated(dest: IBucketNotificationDestination, ...filters: NotificationKeyFilter[]): void; | ||
/** | ||
* Subscribes a destination to receive notificatins when an object is | ||
* removed from the bucket. This is identical to calling | ||
* `onEvent(EventType.ObjectRemoved)`. | ||
* | ||
* @param dest The notification destination (see onEvent) | ||
* @param filters Filters (see onEvent) | ||
*/ | ||
onObjectRemoved(dest: IBucketNotificationDestination, ...filters: NotificationKeyFilter[]): void; | ||
/** | ||
* Set up key properties and return the Bucket encryption property from the | ||
@@ -258,1 +298,110 @@ * user's configuration. | ||
} | ||
/** | ||
* Notification event types. | ||
*/ | ||
export declare enum EventType { | ||
/** | ||
* Amazon S3 APIs such as PUT, POST, and COPY can create an object. Using | ||
* these event types, you can enable notification when an object is created | ||
* using a specific API, or you can use the s3:ObjectCreated:* event type to | ||
* request notification regardless of the API that was used to create an | ||
* object. | ||
*/ | ||
ObjectCreated = "s3:ObjectCreated:*", | ||
/** | ||
* Amazon S3 APIs such as PUT, POST, and COPY can create an object. Using | ||
* these event types, you can enable notification when an object is created | ||
* using a specific API, or you can use the s3:ObjectCreated:* event type to | ||
* request notification regardless of the API that was used to create an | ||
* object. | ||
*/ | ||
ObjectCreatedPut = "s3:ObjectCreated:Put", | ||
/** | ||
* Amazon S3 APIs such as PUT, POST, and COPY can create an object. Using | ||
* these event types, you can enable notification when an object is created | ||
* using a specific API, or you can use the s3:ObjectCreated:* event type to | ||
* request notification regardless of the API that was used to create an | ||
* object. | ||
*/ | ||
ObjectCreatedPost = "s3:ObjectCreated:Post", | ||
/** | ||
* Amazon S3 APIs such as PUT, POST, and COPY can create an object. Using | ||
* these event types, you can enable notification when an object is created | ||
* using a specific API, or you can use the s3:ObjectCreated:* event type to | ||
* request notification regardless of the API that was used to create an | ||
* object. | ||
*/ | ||
ObjectCreatedCopy = "s3:ObjectCreated:Copy", | ||
/** | ||
* Amazon S3 APIs such as PUT, POST, and COPY can create an object. Using | ||
* these event types, you can enable notification when an object is created | ||
* using a specific API, or you can use the s3:ObjectCreated:* event type to | ||
* request notification regardless of the API that was used to create an | ||
* object. | ||
*/ | ||
ObjectCreatedCompleteMultipartUpload = "s3:ObjectCreated:CompleteMultipartUpload", | ||
/** | ||
* By using the ObjectRemoved event types, you can enable notification when | ||
* an object or a batch of objects is removed from a bucket. | ||
* | ||
* You can request notification when an object is deleted or a versioned | ||
* object is permanently deleted by using the s3:ObjectRemoved:Delete event | ||
* type. Or you can request notification when a delete marker is created for | ||
* a versioned object by using s3:ObjectRemoved:DeleteMarkerCreated. For | ||
* information about deleting versioned objects, see Deleting Object | ||
* Versions. You can also use a wildcard s3:ObjectRemoved:* to request | ||
* notification anytime an object is deleted. | ||
* | ||
* You will not receive event notifications from automatic deletes from | ||
* lifecycle policies or from failed operations. | ||
*/ | ||
ObjectRemoved = "s3:ObjectRemoved:*", | ||
/** | ||
* By using the ObjectRemoved event types, you can enable notification when | ||
* an object or a batch of objects is removed from a bucket. | ||
* | ||
* You can request notification when an object is deleted or a versioned | ||
* object is permanently deleted by using the s3:ObjectRemoved:Delete event | ||
* type. Or you can request notification when a delete marker is created for | ||
* a versioned object by using s3:ObjectRemoved:DeleteMarkerCreated. For | ||
* information about deleting versioned objects, see Deleting Object | ||
* Versions. You can also use a wildcard s3:ObjectRemoved:* to request | ||
* notification anytime an object is deleted. | ||
* | ||
* You will not receive event notifications from automatic deletes from | ||
* lifecycle policies or from failed operations. | ||
*/ | ||
ObjectRemovedDelete = "s3:ObjectRemoved:Delete", | ||
/** | ||
* By using the ObjectRemoved event types, you can enable notification when | ||
* an object or a batch of objects is removed from a bucket. | ||
* | ||
* You can request notification when an object is deleted or a versioned | ||
* object is permanently deleted by using the s3:ObjectRemoved:Delete event | ||
* type. Or you can request notification when a delete marker is created for | ||
* a versioned object by using s3:ObjectRemoved:DeleteMarkerCreated. For | ||
* information about deleting versioned objects, see Deleting Object | ||
* Versions. You can also use a wildcard s3:ObjectRemoved:* to request | ||
* notification anytime an object is deleted. | ||
* | ||
* You will not receive event notifications from automatic deletes from | ||
* lifecycle policies or from failed operations. | ||
*/ | ||
ObjectRemovedDeleteMarkerCreated = "s3:ObjectRemoved:DeleteMarkerCreated", | ||
/** | ||
* You can use this event type to request Amazon S3 to send a notification | ||
* message when Amazon S3 detects that an object of the RRS storage class is | ||
* lost. | ||
*/ | ||
ReducedRedundancyLostObject = "s3:ReducedRedundancyLostObject" | ||
} | ||
export interface NotificationKeyFilter { | ||
/** | ||
* S3 keys must have the specified prefix. | ||
*/ | ||
prefix?: string; | ||
/** | ||
* S3 keys must have the specified suffix. | ||
*/ | ||
suffix?: string; | ||
} |
@@ -6,2 +6,3 @@ "use strict"; | ||
const bucket_policy_1 = require("./bucket-policy"); | ||
const notifications_resource_1 = require("./notifications-resource"); | ||
const perms = require("./perms"); | ||
@@ -190,2 +191,5 @@ const s3_generated_1 = require("./s3.generated"); | ||
(props.lifecycleRules || []).forEach(this.addLifecycleRule.bind(this)); | ||
// defines a BucketNotifications construct. Notice that an actual resource will only | ||
// be added if there are notifications added, so we don't need to condition this. | ||
this.notifications = new notifications_resource_1.BucketNotifications(this, 'Notifications', { bucket: this }); | ||
} | ||
@@ -206,2 +210,46 @@ /** | ||
/** | ||
* Adds a bucket notification event destination. | ||
* @param event The event to trigger the notification | ||
* @param dest The notification destination (Lambda, SNS Topic or SQS Queue) | ||
* | ||
* @param filters S3 object key filter rules to determine which objects | ||
* trigger this event. Each filter must include a `prefix` and/or `suffix` | ||
* that will be matched against the s3 object key. Refer to the S3 Developer Guide | ||
* for details about allowed filter rules. | ||
* | ||
* @see https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-filtering | ||
* | ||
* @example | ||
* | ||
* bucket.onEvent(EventType.OnObjectCreated, myLambda, 'home/myusername/*') | ||
* | ||
* @see | ||
* https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html | ||
*/ | ||
onEvent(event, dest, ...filters) { | ||
this.notifications.addNotification(event, dest, ...filters); | ||
} | ||
/** | ||
* Subscribes a destination to receive notificatins when an object is | ||
* created in the bucket. This is identical to calling | ||
* `onEvent(EventType.ObjectCreated)`. | ||
* | ||
* @param dest The notification destination (see onEvent) | ||
* @param filters Filters (see onEvent) | ||
*/ | ||
onObjectCreated(dest, ...filters) { | ||
return this.onEvent(EventType.ObjectCreated, dest, ...filters); | ||
} | ||
/** | ||
* Subscribes a destination to receive notificatins when an object is | ||
* removed from the bucket. This is identical to calling | ||
* `onEvent(EventType.ObjectRemoved)`. | ||
* | ||
* @param dest The notification destination (see onEvent) | ||
* @param filters Filters (see onEvent) | ||
*/ | ||
onObjectRemoved(dest, ...filters) { | ||
return this.onEvent(EventType.ObjectRemoved, dest, ...filters); | ||
} | ||
/** | ||
* Set up key properties and return the Bucket encryption property from the | ||
@@ -333,2 +381,102 @@ * user's configuration. | ||
exports.S3Url = S3Url; | ||
/** | ||
* Notification event types. | ||
*/ | ||
var EventType; | ||
(function (EventType) { | ||
/** | ||
* Amazon S3 APIs such as PUT, POST, and COPY can create an object. Using | ||
* these event types, you can enable notification when an object is created | ||
* using a specific API, or you can use the s3:ObjectCreated:* event type to | ||
* request notification regardless of the API that was used to create an | ||
* object. | ||
*/ | ||
EventType["ObjectCreated"] = "s3:ObjectCreated:*"; | ||
/** | ||
* Amazon S3 APIs such as PUT, POST, and COPY can create an object. Using | ||
* these event types, you can enable notification when an object is created | ||
* using a specific API, or you can use the s3:ObjectCreated:* event type to | ||
* request notification regardless of the API that was used to create an | ||
* object. | ||
*/ | ||
EventType["ObjectCreatedPut"] = "s3:ObjectCreated:Put"; | ||
/** | ||
* Amazon S3 APIs such as PUT, POST, and COPY can create an object. Using | ||
* these event types, you can enable notification when an object is created | ||
* using a specific API, or you can use the s3:ObjectCreated:* event type to | ||
* request notification regardless of the API that was used to create an | ||
* object. | ||
*/ | ||
EventType["ObjectCreatedPost"] = "s3:ObjectCreated:Post"; | ||
/** | ||
* Amazon S3 APIs such as PUT, POST, and COPY can create an object. Using | ||
* these event types, you can enable notification when an object is created | ||
* using a specific API, or you can use the s3:ObjectCreated:* event type to | ||
* request notification regardless of the API that was used to create an | ||
* object. | ||
*/ | ||
EventType["ObjectCreatedCopy"] = "s3:ObjectCreated:Copy"; | ||
/** | ||
* Amazon S3 APIs such as PUT, POST, and COPY can create an object. Using | ||
* these event types, you can enable notification when an object is created | ||
* using a specific API, or you can use the s3:ObjectCreated:* event type to | ||
* request notification regardless of the API that was used to create an | ||
* object. | ||
*/ | ||
EventType["ObjectCreatedCompleteMultipartUpload"] = "s3:ObjectCreated:CompleteMultipartUpload"; | ||
/** | ||
* By using the ObjectRemoved event types, you can enable notification when | ||
* an object or a batch of objects is removed from a bucket. | ||
* | ||
* You can request notification when an object is deleted or a versioned | ||
* object is permanently deleted by using the s3:ObjectRemoved:Delete event | ||
* type. Or you can request notification when a delete marker is created for | ||
* a versioned object by using s3:ObjectRemoved:DeleteMarkerCreated. For | ||
* information about deleting versioned objects, see Deleting Object | ||
* Versions. You can also use a wildcard s3:ObjectRemoved:* to request | ||
* notification anytime an object is deleted. | ||
* | ||
* You will not receive event notifications from automatic deletes from | ||
* lifecycle policies or from failed operations. | ||
*/ | ||
EventType["ObjectRemoved"] = "s3:ObjectRemoved:*"; | ||
/** | ||
* By using the ObjectRemoved event types, you can enable notification when | ||
* an object or a batch of objects is removed from a bucket. | ||
* | ||
* You can request notification when an object is deleted or a versioned | ||
* object is permanently deleted by using the s3:ObjectRemoved:Delete event | ||
* type. Or you can request notification when a delete marker is created for | ||
* a versioned object by using s3:ObjectRemoved:DeleteMarkerCreated. For | ||
* information about deleting versioned objects, see Deleting Object | ||
* Versions. You can also use a wildcard s3:ObjectRemoved:* to request | ||
* notification anytime an object is deleted. | ||
* | ||
* You will not receive event notifications from automatic deletes from | ||
* lifecycle policies or from failed operations. | ||
*/ | ||
EventType["ObjectRemovedDelete"] = "s3:ObjectRemoved:Delete"; | ||
/** | ||
* By using the ObjectRemoved event types, you can enable notification when | ||
* an object or a batch of objects is removed from a bucket. | ||
* | ||
* You can request notification when an object is deleted or a versioned | ||
* object is permanently deleted by using the s3:ObjectRemoved:Delete event | ||
* type. Or you can request notification when a delete marker is created for | ||
* a versioned object by using s3:ObjectRemoved:DeleteMarkerCreated. For | ||
* information about deleting versioned objects, see Deleting Object | ||
* Versions. You can also use a wildcard s3:ObjectRemoved:* to request | ||
* notification anytime an object is deleted. | ||
* | ||
* You will not receive event notifications from automatic deletes from | ||
* lifecycle policies or from failed operations. | ||
*/ | ||
EventType["ObjectRemovedDeleteMarkerCreated"] = "s3:ObjectRemoved:DeleteMarkerCreated"; | ||
/** | ||
* You can use this event type to request Amazon S3 to send a notification | ||
* message when Amazon S3 detects that an object of the RRS storage class is | ||
* lost. | ||
*/ | ||
EventType["ReducedRedundancyLostObject"] = "s3:ReducedRedundancyLostObject"; | ||
})(EventType = exports.EventType || (exports.EventType = {})); | ||
class ImportedBucketRef extends BucketRef { | ||
@@ -343,2 +491,2 @@ constructor(parent, name, props) { | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0Esd0NBQXlDO0FBQ3pDLG9DQUFxQztBQUNyQyxtREFBK0M7QUFDL0MsaUNBQWtDO0FBRWxDLGlEQUF3RztBQUN4RyxpQ0FBNkU7QUF1QjdFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBc0IsU0FBVSxTQUFRLEdBQUcsQ0FBQyxTQUFTO0lBQXJEOztRQW9DSTs7O1dBR0c7UUFDZ0IscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBOEhoRCxDQUFDO0lBcktHOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQXFCLEVBQUUsSUFBWSxFQUFFLEtBQXFCO1FBQzNFLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUErQkQ7O09BRUc7SUFDSSxNQUFNO1FBQ1QsT0FBTztZQUNILFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUU7WUFDekYsVUFBVSxFQUFFLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRTtTQUMvRixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksbUJBQW1CLENBQUMsVUFBK0I7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSw0QkFBWSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFB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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0Esd0NBQXlDO0FBRXpDLG9DQUFxQztBQUNyQyxtREFBK0M7QUFDL0MscUVBQStEO0FBQy9ELGlDQUFrQztBQUVsQyxpREFBd0c7QUFDeEcsaUNBQTZFO0FBdUI3RTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQXNCLFNBQVUsU0FBUSxHQUFHLENBQUMsU0FBUztJQUFyRDs7UUFvQ0k7OztXQUdHO1FBQ2dCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztJQThIaEQsQ0FBQztJQXJLRzs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFxQixFQUFFLElBQVksRUFBRSxLQUFxQjtRQUMzRSxPQUFPLElBQUksaUJBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBK0JEOztPQUVHO0lBQ0ksTUFBTTtRQUNULE9BQU87WUFDSCxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFO1lBQ3pGLFVBQVUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUU7U0FDL0YsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLG1CQUFtQixDQUFDLFVBQStCO1FBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksNEJBQVksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUs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 |
{ | ||
"name": "@aws-cdk/aws-s3", | ||
"version": "0.8.1", | ||
"version": "0.8.2", | ||
"description": "CDK Constructs for AWS S3", | ||
@@ -49,14 +49,15 @@ "main": "lib/index.js", | ||
"devDependencies": { | ||
"@aws-cdk/assert": "^0.8.1", | ||
"cdk-build-tools": "^0.8.1", | ||
"cdk-integ-tools": "^0.8.1", | ||
"cfn2ts": "^0.8.1", | ||
"pkglint": "^0.8.1" | ||
"@aws-cdk/assert": "^0.8.2", | ||
"cdk-build-tools": "^0.8.2", | ||
"cdk-integ-tools": "^0.8.2", | ||
"cfn2ts": "^0.8.2", | ||
"pkglint": "^0.8.2" | ||
}, | ||
"dependencies": { | ||
"@aws-cdk/aws-iam": "^0.8.1", | ||
"@aws-cdk/aws-kms": "^0.8.1", | ||
"@aws-cdk/cdk": "^0.8.1" | ||
"@aws-cdk/aws-iam": "^0.8.2", | ||
"@aws-cdk/aws-kms": "^0.8.2", | ||
"@aws-cdk/aws-s3-notifications": "^0.8.2", | ||
"@aws-cdk/cdk": "^0.8.2" | ||
}, | ||
"homepage": "https://github.com/awslabs/aws-cdk" | ||
} |
@@ -146,1 +146,38 @@ ## AWS S3 Construct Library | ||
``` | ||
### Bucket Notifications | ||
The Amazon S3 notification feature enables you to receive notifications when | ||
certain events happen in your bucket as described under [S3 Bucket | ||
Notifications] of the S3 Developer Guide. | ||
To subscribe for bucket notifications, use the `bucket.onEvent` method. The | ||
`bucket.onObjectCreated` and `bucket.onObjectRemoved` can also be used for these | ||
common use cases. | ||
The following example will subscribe an SNS topic to be notified of all | ||
``s3:ObjectCreated:*` events: | ||
```ts | ||
const myTopic = new sns.Topic(this, 'MyTopic'); | ||
bucket.onEvent(s3.EventType.ObjectCreated, myTopic); | ||
``` | ||
This call will also ensure that the topic policy can accept notifications for | ||
this specific bucket. | ||
The following destinations are currently supported: | ||
* `sns.Topic` | ||
* `sqs.Queue` | ||
* `lambda.Function` | ||
It is also possible to specify S3 object key filters when subscribing. The | ||
following example will notify `myQueue` when objects prefixed with `foo/` and | ||
have the `.jpg` suffix are removed from the bucket. | ||
```ts | ||
bucket.onEvent(s3.EventType.ObjectRemoved, myQueue, { prefix: 'foo/', suffix: '.jpg' }); | ||
``` | ||
[S3 Bucket Notifications]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
617489
51
6274
183
4
+ Added@aws-cdk/aws-s3-notifications@0.8.2(transitive)
Updated@aws-cdk/aws-iam@^0.8.2
Updated@aws-cdk/aws-kms@^0.8.2
Updated@aws-cdk/cdk@^0.8.2