Skip to content

Commit

Permalink
Merge pull request #201 from aws-solutions/release/v6.1.3
Browse files Browse the repository at this point in the history
Release v6.1.3
  • Loading branch information
eggoynes authored Jul 13, 2023
2 parents 076c382 + ce0878b commit 75ff976
Show file tree
Hide file tree
Showing 80 changed files with 35,597 additions and 86,923 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,8 @@
# System Files
**/.DS_Store
**/.vscode

# test coverage files
**/source/test
**source/**/.coverage
**source/**/coverage
100 changes: 71 additions & 29 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,57 @@
# Change Log
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [6.1.2] - 2023-5-01
## [6.1.3] - 2023-07-10

### Changed

- Updated to JavaScript V3 SDK for NodeJS 18 update.
- All node JS Lambdas upgraded to NodeJS 18 runtime.
- Updated packages
- Removed deprecated moment package
- Enabled versioning and enforce SSL for S3 buckets
- Refactored S3 Config custom resource to reduce duplicated lines
- Updated S3 client configuration to use v4 signature by default and path addressing_style
- Updated operational metrics so that people can successfully opt out by following the Implementation Guide

## [6.1.2] - 2023-05-01

### Added

- Created unique cachePolicyName for CloudFront cache policy allowing the stack to deployed multiple times across regions.
- Added unique prefix for Application Registry name so if a stack update is performance the new application will show up in app manager.
- Added package-lock files to show snapshot of packages used during build.

### Removed

- Removed github action workflow files

## [6.1.1] - 2023-4-17
## [6.1.1] - 2023-04-17

### Changed

- Updated object ownership configuration on the CloudFormation logging bucket

## [6.1.0] - 2023-2-27
## [6.1.0] - 2023-02-27

### Changed

- Added region name and account ID to AppRegistry Application name
- Changed AppRegistry Attribute Group name to Region-StackName
- Updated AppRegistry attribute and tag names

### Fixed

- #155 appRegistry associateStack has been deprecated

## [6.0.0] - 2022-10-17

### Added

- Added cdk infrastructure in source/cdk directory
- Defined resources for cdk stack in source/cdk/lib/vod-stack.ts
- Added snapshot test to source/cdk/test directory
Expand All @@ -36,6 +60,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added Service Catalog AppRegistry configuration

### Changed

- Removed CloudFormation template video-on-demand-on-aws.yaml
- Upgrade path from old versions require a delete and re-deploy since moving to CDK
- Use CachePolicy instead of ForwardedValues(deprecated) for cloudfront distribution
Expand All @@ -44,86 +69,98 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Updated to uuid v9

### Fixed
- Fixed mergeSettingsWithDefault arguments. Closes this issue (https://github.com/aws-solutions/video-on-demand-on-aws/issues/137)

### Contributors
* @sandimciin
- Fixed mergeSettingsWithDefault arguments. Closes this issue <https://github.com/aws-solutions/video-on-demand-on-aws/issues/137>

## [5.3.1] - 2021-12-16

### Fixed

- Fixed spelling errors in CloudFormation template.

## [5.3.0] - 2021-11-17
### Added
- Added new input file types wmv, mkv, m3u8, mpeg, webm, and h264.

### Added

- Added new input file types wmv, mkv, m3u8, mpeg, webm, and h264.
- Now allowing uppercase input file types to run the end to end video encoding workflow.
- Added the MXF and mxf file types. Closes this request (https://github.com/aws-solutions/video-on-demand-on-aws/issues/124)
- Added the MXF and mxf file types. Closes this request <https://github.com/aws-solutions/video-on-demand-on-aws/issues/124>
- Additional headers added to Amazon CloudFront distribution attached to destination bucket for the out/* prefix. This will allow easier playback of content on modern browsers. Additional headers whitelisted are Origin, Access-Control-Allow-Origin, Access-Control-Request-Method, and Access-Control-Request-Headers.
- Additional methods added to Amazon CloudFront distribution for destination bucket. Head and options added.

### Changed
- Added steps in Readme to make building the project more clear.

- Added steps in Readme to make building the project more clear.
- Added Readme build step to ensure bucket ownership when uploading build files.
- Removed deinterlacer preprocessor from templates to reduce costs. This causes MediaConvert jobs to run in Basic Tier mode instead of Pro Tier.
- Modified job templates that force output frame rate to 30, 24, or 15 fps to instead follow the source fps of your video file. This allows 60fps content, as well as PAL 25/50 fps video files to have their frame rate preserved.
- Modified job templates that force output frame rate to 30, 24, or 15 fps to instead follow the source fps of your video file. This allows 60fps content, as well as PAL 25/50 fps video files to have their frame rate preserved.
- Removed Dash and MP4 outputs, leaving just the HLS output. This saves costs running this solution.
- Removed SelectorType and Tracks from job profiles, we will auto pick the first track. This allows audio only videos to encode without having an error.
- Changed AWS MediaConvert templates codecLevel to auto to allow for more supported input file types.
- Changed AWS MediaConvert audio track to auto to allow for video only workflows. This allows video files without audio track to work with the included AWS MediaConvert profiles.
- Changed AWS MediaConvert audio track to auto to allow for video only workflows. This allows video files without audio track to work with the included AWS MediaConvert profiles.

### Fixed
- Fixed naming in the MediaConvert custom resource. Closes this PR (https://github.com/aws-solutions/video-on-demand-on-aws/pull/84)

- Fixed naming in the MediaConvert custom resource. Closes this PR <https://github.com/aws-solutions/video-on-demand-on-aws/pull/84>
- Update Axios package to 0.21.1

## [5.2.0] - 2020-12-10
### Added
- Support for S3 Signature Version4 for pre-signed URLs (https://github.com/awslabs/video-on-demand-on-aws/pull/111)
- New MediaConvert job templates with:
- Fewer HLS and DASH ABR renditions
- Updated encoder settings
- No presets

### Added

- Support for S3 Signature Version4 for pre-signed URLs <https://github.com/awslabs/video-on-demand-on-aws/pull/111>
- New MediaConvert job templates with fewer HLS and DASH ABR renditions, updated encoder settings, and no presets
- Enabled point-in-time recovery backup for DynamoDB table

### Changed
- MediaInfo executable version (from v19.09 to v20.09) (https://github.com/awslabs/video-on-demand-on-aws/pull/116)
- CloudFront configuration improvements (https://github.com/awslabs/video-on-demand-on-aws/pull/96, https://github.com/awslabs/video-on-demand-on-aws/pull/99)

- MediaInfo executable version (from v19.09 to v20.09) <https://github.com/awslabs/video-on-demand-on-aws/pull/116>
- CloudFront configuration improvements <https://github.com/awslabs/video-on-demand-on-aws/pull/96> <https://github.com/awslabs/video-on-demand-on-aws/pull/99>
- MediaConvert presets are no longer being created
- All new MediaConvert job templates gets created regardless of whether MediaPackage is enabled or not

### Fixed
- Settings are no longer overwritten when using custom templates (https://github.com/awslabs/video-on-demand-on-aws/pull/107)
- Solution now deploys even in regions with no MediaPackage support

- Settings are no longer overwritten when using custom templates <https://github.com/awslabs/video-on-demand-on-aws/pull/107>
- Solution now deploys even in regions with no MediaPackage support

## [5.1.0] - 2020-04-30

### Added

- Default encryption to SNS topic
- Environment variable to configure the AWS SDK to reuse TCP connections (https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/node-reusing-connections.html)
- Environment variable to configure the AWS SDK to reuse TCP connections <https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/node-reusing-connections.html>
- SQS queue options at deployment to capture workflow outputs
- Support for accelerated transcoding in Elemental MediaCoonvert: https://aws.amazon.com/about-aws/whats-new/2019/10/announcing-new-aws-elemental-mediaconvert-features-for-accelerated-transcoding-dash-and-avc-video-quality/
- Support for accelerated transcoding in Elemental MediaCoonvert: <https://aws.amazon.com/about-aws/whats-new/2019/10/announcing-new-aws-elemental-mediaconvert-features-for-accelerated-transcoding-dash-and-avc-video-quality/>
- support for Glacier deep archive

### Changed

- Lambda functions runtime to latest available (Node.js 12)
- Build assets to include package-lock.json files
- Build and test commands to use _npm ci_ instead of _npm install_
- Cloudformation template to use _AWS::Partition_ instead of _aws_
- Logic to add MediaPackage VOD as a custom origin to CloudFront (it's now done as a custom resource when the stack is created / updated)

### Fixed

- Links in README file
- fix to buildUrl function in output-validate lambda to support non root objects (https://github.com/awslabs/video-on-demand-on-aws/issues/61)
- fix mediainfo lambda function signing method error (https://github.com/awslabs/video-on-demand-on-aws/issues/670
- fix to buildUrl function in output-validate lambda to support non root objects <https://github.com/awslabs/video-on-demand-on-aws/issues/61>
- fix mediainfo lambda function signing method error <https://github.com/awslabs/video-on-demand-on-aws/issues/670>

### Removed

- _'use strict'_ directives

## [5.0.0] - 2019-11-20

### Added

- MediaPackage VOD support
- Rotation support (https://github.com/awslabs/video-on-demand-on-aws/pull/27)
- Rotation support <https://github.com/awslabs/video-on-demand-on-aws/pull/27>

### Changed

- License to Apache-2.0
- Time properties in notification event (startTime and endTime) to use ISO 8601 formatting
- README to use correct casing for metadata sample
Expand All @@ -132,20 +169,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Each function in the workflow to have its own role

### Fixed

- Typo in notification event property name (ecodeJobId -> encodeJobId)
- Links to issues in the CONTRIBUTING file
- Anonymous metrics helper to remove ServiceToken (which includes Lambda ARN) from sent data
- Suffix for supported format (mv4 -> m4v)
- Custom resource to handle WorkflowTrigger parameter update

### Removed

- References to unused workflowTrigger (Api)

## [4.3.0] - 2019-11-20

### Added

- CHANGELOG file

### Changed

- Lambda functions (except for mediainfo) runtime to nodejs10.x
- Mediainfo lambda function to python3.7
- Mediainfo executable version (from v0.7.92.1 to v19.09)
28 changes: 22 additions & 6 deletions NOTICE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,31 @@ THIRD PARTY COMPONENTS
**********************
This software includes third party software subject to the following copyrights:

aws-sdk under the Apache License Version 2.0
aws-sdk-mock under the Apache License Version 2.0
@aws-sdk/client-s3 under the Apache License Version 2.0
@aws-sdk/client-lambda under the Apache License Version 2.0
@aws-sdk/client-cloudfront under the Apache License Version 2.0
@aws-sdk/client-mediaconvert under the Apache License Version 2.0
@aws-sdk/client-mediapackage-vod under the Apache License Version 2.0
@aws-sdk/lib-dynamodb under the Apache License Version 2.0
@aws-sdk/client-dynamodb under the Apache License Version 2.0
@aws-sdk/client-sns under the Apache License Version 2.0
@aws-sdk/client-sqs under the Apache License Version 2.0
@aws-sdk/client-sfn under the Apache License Version 2.0
aws-cdk under the Apache License Version 2.0
aws-cdk-lib under the Apache License Version 2.0
@aws-solutions-constructs/aws-cloudfront-s3 under the Apache License Version 2.0
@aws-cdk/assert under the Apache License Version 2.0
@aws-cdk/aws-servicecatalogappregistry-alpha under the Apache License Version 2.0
axios under the Massachusetts Institute of Technology (MIT) license
axios-mock-adapter under the Massachusetts Institute of Technology (MIT) license
boto3 under the Apache License Version 2.0
cdk-nag under the Apache License Version 2.0
chai under the Massachusetts Institute of Technology (MIT) license
constructs under the Apache License Version 2.0
lodash under the Massachusetts Institute of Technology (MIT) license
mocha under the Massachusetts Institute of Technology (MIT) license
moment under the Massachusetts Institute of Technology (MIT) license
sinon under the BSD-3-Clause license
sinon-chai under the BSD-2-Clause license
source-map-support under the Massachusetts Institute of Technology (MIT) license
uuid under the Massachusetts Institute of Technology (MIT) license
aws-sdk-client-mock under the Massachusetts Institute of Technology (MIT) license
jest under the Massachusetts Institute of Technology (MIT) license
typescript under the Apache License Version 2.0
ts-node under the Massachusetts Institute of Technology (MIT) license
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ Source code for [Video on Demand on AWS](https://aws.amazon.com/solutions/video-
- [QVBR Mode](#qvbr-mode)
- [Accelerated Transcoding](#accelerated-transcoding)
- [Source code](#source-code)
- [Node.js 12](#nodejs-12)
- [Python 3.7](#python-37)
- [Node.js 18](#nodejs-18)
- [Python 3.9](#python-39)
- [Creating a custom build](#creating-a-custom-build)
- [Prerequisites:](#prerequisites)
- [1. Running unit tests for customization](#1-running-unit-tests-for-customization)
Expand Down Expand Up @@ -145,7 +145,7 @@ For more detail please see [Accelerated Transcoding](https://docs.aws.amazon.com

## Source code

### Node.js 14
### Node.js 18
* **archive-source:** Lambda function to tag the source video in s3 to enable the Glacier lifecycle policy.
* **custom-resource:** Lambda backed CloudFormation custom resource to deploy MediaConvert templates configure S3 event notifications.
* **dynamo:** Lambda function to Update DynamoDB.
Expand All @@ -157,7 +157,7 @@ For more detail please see [Accelerated Transcoding](https://docs.aws.amazon.com
* **profiler:** Lambda function used to send publish and/or error notifications.
* **step-functions:** Lambda function to trigger AWS Step Functions.

### Python 3.8
### Python 3.9
* **mediainfo:** Lambda function to run [mediainfo](https://mediaarea.net/en/MediaInfo) on an S3 signed url.

> ./source/mediainfo/bin/mediainfo must be made executable before deploying to lambda.
Expand All @@ -168,7 +168,7 @@ To make changes to the solution, download or clone this repo, update the source

### Prerequisites:
* [AWS Command Line Interface](https://aws.amazon.com/cli/)
* Node.js 14.x or later
* Node.js 18.x or later
* Python 3.8 or later

### 1. Running unit tests for customization
Expand Down
13 changes: 13 additions & 0 deletions deployment/cdk-solution-helper/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 6 additions & 1 deletion deployment/cdk-solution-helper/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
{
"name": "cdk-solution-helper",
"description": "CDK Generated template post processor",
"license": "Apache-2.0",
"version": "0.1.0",
"author": {
"name": "Amazon Web Services",
"url": "https://aws.amazon.com/solutions"
},
"dependencies": {
"fs": "0.0.1-security"
}
}
6 changes: 3 additions & 3 deletions source/archive-source/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@
* and limitations under the License. *
*********************************************************************************************************************/

const AWS = require('aws-sdk');
const { S3 } = require("@aws-sdk/client-s3");
const error = require('./lib/error.js');

exports.handler = async (event) => {
console.log(`REQUEST:: ${JSON.stringify(event, null, 2)}`);

const s3 = new AWS.S3();
const s3 = new S3();

try {
let params = {
Expand All @@ -37,7 +37,7 @@ exports.handler = async (event) => {
}
};

await s3.putObjectTagging(params).promise();
await s3.putObjectTagging(params);
} catch (err) {
await error.handler(event, err);
return err;
Expand Down
6 changes: 3 additions & 3 deletions source/archive-source/lib/error.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@
* and limitations under the License. *
*********************************************************************************************************************/

const AWS = require('aws-sdk');
const { Lambda } = require("@aws-sdk/client-lambda");

let errHandler = async (event, _err) => {
const lambda = new AWS.Lambda({
const lambda = new Lambda({
region: process.env.AWS_REGION
});

Expand All @@ -31,7 +31,7 @@ let errHandler = async (event, _err) => {
Payload: JSON.stringify(payload, null, 2)
};

await lambda.invoke(params).promise();
await lambda.invoke(params);
} catch (err) {
console.log(err);
throw err;
Expand Down
Loading

0 comments on commit 75ff976

Please sign in to comment.