Skip to content

Commit 9060cfc

Browse files
YPandasdependabot[bot]sirknightjbhulbrtBenjamin Hulbrt
authored
Release v2.7.0 (#742)
* Bump @typescript-eslint/eslint-plugin from 8.56.1 to 8.57.0 (#706) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.56.1 to 8.57.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.57.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.57.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump ws from 8.18.3 to 8.19.0 (#708) Bumps [ws](https://github.com/websockets/ws) from 8.18.3 to 8.19.0. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@8.18.3...8.19.0) --- updated-dependencies: - dependency-name: ws dependency-version: 8.19.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump webpack-dev-server from 5.2.2 to 5.2.3 (#709) Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 5.2.2 to 5.2.3. - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md) - [Commits](webpack/webpack-dev-server@v5.2.2...v5.2.3) --- updated-dependencies: - dependency-name: webpack-dev-server dependency-version: 5.2.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @types/node from 24.10.1 to 25.4.0 (#710) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.10.1 to 25.4.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 25.4.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump jsdom from 28.1.0 to 29.0.0 (#713) Bumps [jsdom](https://github.com/jsdom/jsdom) from 28.1.0 to 29.0.0. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Changelog](https://github.com/jsdom/jsdom/blob/v29.0.0/Changelog.md) - [Commits](jsdom/jsdom@v28.1.0...v29.0.0) --- updated-dependencies: - dependency-name: jsdom dependency-version: 29.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump webpack from 5.105.0 to 5.105.4 (#714) Bumps [webpack](https://github.com/webpack/webpack) from 5.105.0 to 5.105.4. - [Release notes](https://github.com/webpack/webpack/releases) - [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md) - [Commits](webpack/webpack@v5.105.0...v5.105.4) --- updated-dependencies: - dependency-name: webpack dependency-version: 5.105.4 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump jest-environment-jsdom from 30.2.0 to 30.3.0 (#715) Bumps [jest-environment-jsdom](https://github.com/jestjs/jest/tree/HEAD/packages/jest-environment-jsdom) from 30.2.0 to 30.3.0. - [Release notes](https://github.com/jestjs/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jestjs/jest/commits/v30.3.0/packages/jest-environment-jsdom) --- updated-dependencies: - dependency-name: jest-environment-jsdom dependency-version: 30.3.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump jest from 30.2.0 to 30.3.0 (#716) Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 30.2.0 to 30.3.0. - [Release notes](https://github.com/jestjs/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jestjs/jest/commits/v30.3.0/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-version: 30.3.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/eslint-plugin from 8.57.0 to 8.57.1 (#717) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.57.0 to 8.57.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.57.1/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.57.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/parser from 8.57.0 to 8.57.1 (#718) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.57.0 to 8.57.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.57.1/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-version: 8.57.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/eslint-plugin from 8.57.1 to 8.57.2 (#721) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.57.1 to 8.57.2. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.57.2/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.57.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump webpack-cli from 6.0.1 to 7.0.2 (#722) Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 6.0.1 to 7.0.2. - [Release notes](https://github.com/webpack/webpack-cli/releases) - [Changelog](https://github.com/webpack/webpack-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@6.0.1...webpack-cli@7.0.2) --- updated-dependencies: - dependency-name: webpack-cli dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump ws from 8.19.0 to 8.20.0 (#723) Bumps [ws](https://github.com/websockets/ws) from 8.19.0 to 8.20.0. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@8.19.0...8.20.0) --- updated-dependencies: - dependency-name: ws dependency-version: 8.20.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump eslint-plugin-prettier from 5.5.4 to 5.5.5 (#725) Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.5.4 to 5.5.5. - [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases) - [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md) - [Commits](prettier/eslint-plugin-prettier@v5.5.4...v5.5.5) --- updated-dependencies: - dependency-name: eslint-plugin-prettier dependency-version: 5.5.5 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @types/node from 25.4.0 to 25.5.0 (#726) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 25.4.0 to 25.5.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 25.5.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bump @typescript-eslint/eslint-plugin from 8.57.2 to 8.58.0 (#734) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.57.2 to 8.58.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.58.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.58.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bump jsdom from 29.0.0 to 29.0.1 (#732) Bumps [jsdom](https://github.com/jsdom/jsdom) from 29.0.0 to 29.0.1. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](jsdom/jsdom@v29.0.0...v29.0.1) --- updated-dependencies: - dependency-name: jsdom dependency-version: 29.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump flatted from 3.3.2 to 3.4.2 (#720) (#704) Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.2 to 3.4.2. - [Commits](WebReflection/flatted@v3.3.2...v3.4.2) --- updated-dependencies: - dependency-name: flatted dependency-version: 3.4.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump minimatch from 3.1.2 to 3.1.5 (#701) Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.1.2 to 3.1.5. - [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md) - [Commits](isaacs/minimatch@v3.1.2...v3.1.5) --- updated-dependencies: - dependency-name: minimatch dependency-version: 3.1.5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump handlebars from 4.7.8 to 4.7.9 (#729) Bumps [handlebars](https://github.com/handlebars-lang/handlebars.js) from 4.7.8 to 4.7.9. - [Release notes](https://github.com/handlebars-lang/handlebars.js/releases) - [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/v4.7.9/release-notes.md) - [Commits](handlebars-lang/handlebars.js@v4.7.8...v4.7.9) --- updated-dependencies: - dependency-name: handlebars dependency-version: 4.7.9 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Scope down CI permissions (#705) * Add Fips endpoint selection (#694) * Add Fips endpoint selection * Fix turn custom fips endpoint and Update stun protocol when using fips * Update information block and fix custom endpoint error * Add Fips unit tests * Create fips-validation.yml * Update fips-validation.yml * Update fips-validation.yml * remove fips workflow * Update fips error message and add auto select fips endpoints for gov regions * Fix bug for dualstack and fips selection causing useDualStackEndpoints to return false * Update error messages for fips regions and media ingestion * Update ingestion gov unsupported error messages and location * Update fips unit test for custom endpoint and fips enabled * Remove custom endpoint unit tests and add custom endpoint override for dual-stack option --------- Co-authored-by: Benjamin Hulbrt <bhulbrt@amazon.com> * Resolve all dependabot PRs altogether (#740) * Bump eslint from 9.39.1 to 10.1.0 Bumps [eslint](https://github.com/eslint/eslint) from 9.39.1 to 10.1.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v9.39.1...v10.1.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.1.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * fix: add missing @eslint/js and @eslint/eslintrc dependencies for ESLint 10 ESLint 10 no longer bundles @eslint/js and @eslint/eslintrc as transitive dependencies. eslint.config.mjs imports both directly, so they need to be explicit devDependencies. * fix: update custom ESLint plugin for ESLint 10 compatibility - Replace deprecated context.getSourceCode() with context.sourceCode - Restructure rule export to { meta, create } format required by flat config * Bump node-forge from 1.3.3 to 1.4.0 Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.3.3 to 1.4.0. - [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md) - [Commits](digitalbazaar/forge@v1.3.3...v1.4.0) --- updated-dependencies: - dependency-name: node-forge dependency-version: 1.4.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump serialize-javascript and terser-webpack-plugin in /aws-sdk-build Removes [serialize-javascript](https://github.com/yahoo/serialize-javascript). It's no longer used after updating ancestor dependency [terser-webpack-plugin](https://github.com/webpack/terser-webpack-plugin). These dependencies need to be updated together. Removes `serialize-javascript` Updates `terser-webpack-plugin` from 5.3.16 to 5.4.0 - [Release notes](https://github.com/webpack/terser-webpack-plugin/releases) - [Changelog](https://github.com/webpack/terser-webpack-plugin/blob/main/CHANGELOG.md) - [Commits](webpack/terser-webpack-plugin@v5.3.16...v5.4.0) --- updated-dependencies: - dependency-name: serialize-javascript dependency-version: dependency-type: indirect - dependency-name: terser-webpack-plugin dependency-version: 5.4.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump brace-expansion from 1.1.12 to 1.1.13 Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.12 to 1.1.13. - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](juliangruber/brace-expansion@v1.1.12...v1.1.13) --- updated-dependencies: - dependency-name: brace-expansion dependency-version: 1.1.13 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump undici from 6.23.0 to 6.24.1 Bumps [undici](https://github.com/nodejs/undici) from 6.23.0 to 6.24.1. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](nodejs/undici@v6.23.0...v6.24.1) --- updated-dependencies: - dependency-name: undici dependency-version: 6.24.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump picomatch from 2.3.1 to 2.3.2 Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2. - [Release notes](https://github.com/micromatch/picomatch/releases) - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md) - [Commits](micromatch/picomatch@2.3.1...2.3.2) --- updated-dependencies: - dependency-name: picomatch dependency-version: 2.3.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yuqi Huang <yuuqih@amazon.com> * version bump from 2.6.1 to 2.7.0 (#741) Co-authored-by: Yuqi Huang <yuuqih@amazon.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeremy Gunawan <jggunawa@amazon.com> Co-authored-by: bhulbrt <77691084+bhulbrt@users.noreply.github.com> Co-authored-by: Benjamin Hulbrt <bhulbrt@amazon.com> Co-authored-by: Yuqi Huang <yuuqih@amazon.com>
1 parent 2c4764e commit 9060cfc

File tree

15 files changed

+2115
-1740
lines changed

15 files changed

+2115
-1740
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ on:
1313
jobs:
1414
nodejs-ubuntu-build:
1515
runs-on: ubuntu-latest
16+
permissions:
17+
contents: read
1618
strategy:
1719
matrix:
1820
node: [ 18, 19, 20, 21, 22, 23 ]

aws-sdk-build/package-lock.json

Lines changed: 3 additions & 45 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eslint/index.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ const sortedImports = require('./sorted-imports');
22

33
module.exports = {
44
rules: {
5-
'sorted-imports': {
6-
create: sortedImports,
7-
},
5+
'sorted-imports': sortedImports,
86
},
97
};

eslint/sorted-imports.js

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
function isBlankLineBefore(context, node) {
2-
return node.range[0] > 0 && !context.getSourceCode().getLocFromIndex(node.range[0] - 1).column;
2+
return node.range[0] > 0 && !context.sourceCode.getLocFromIndex(node.range[0] - 1).column;
33
}
44

55
function getText(context, node) {
6-
return context.getSourceCode().getText(node);
6+
return context.sourceCode.getText(node);
77
}
88

9-
module.exports = context => {
10-
let previousImport = null;
11-
let previousLocalImport = null;
9+
module.exports = {
10+
meta: {
11+
type: 'layout',
12+
fixable: 'whitespace',
13+
},
14+
create(context) {
15+
let previousImport = null;
16+
let previousLocalImport = null;
1217

13-
return {
14-
meta: {
15-
type: 'layout',
16-
fixable: 'whitespace',
17-
},
18-
ImportDeclaration(node) {
18+
return {
19+
ImportDeclaration(node) {
1920
const sourceValue = node.source.value;
2021

2122
if (sourceValue.startsWith('.') || sourceValue.startsWith('/')) {
@@ -120,4 +121,5 @@ module.exports = context => {
120121
}
121122
},
122123
};
124+
},
123125
};

examples/app.js

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,8 @@ function getFormValues() {
114114
forceSTUN: $('#forceSTUN').is(':checked'),
115115
forceTURN: $('#forceTURN').is(':checked'),
116116
accessKeyId: $('#accessKeyId').val(),
117-
useDualStackEndpoints: endpoint === undefined && $('#dual-stack').is(':checked'),
117+
useDualStackEndpoints: $('#dual-stack').is(':checked'),
118+
useFipsEndpoints: $('#enable-fips').is(':checked'),
118119
endpoint: endpoint,
119120
secretAccessKey: $('#secretAccessKey').val(),
120121
sessionToken: $('#sessionToken').val() || null,
@@ -212,6 +213,19 @@ $('#master-button').click(async () => {
212213
return;
213214
}
214215
const formValues = getFormValues();
216+
217+
// Check for FIPS + WebRTC ingestion incompatibility
218+
if (formValues.useFipsEndpoints && (formValues.autoDetermineMediaIngestMode || formValues.mediaIngestionModeOverride)) {
219+
console.error('GovCloud regions do not support WebRTC Ingestion and Storage. Please move to a supported region or disable WebRTC ingestion.');
220+
return;
221+
}
222+
223+
// Check for FIPS + non-GovCloud region
224+
if (formValues.useFipsEndpoints && !formValues.region.startsWith('us-gov-')) {
225+
console.error('FIPS endpoints are not supported in this region.');
226+
return;
227+
}
228+
215229
ROLE = $('#master-heading').text() === 'Viewer' ? 'VIEWER' : 'MASTER';
216230
form.addClass('d-none');
217231
$('#master').removeClass('d-none');
@@ -253,6 +267,18 @@ $('#viewer-button').click(async () => {
253267
}
254268
const formValues = getFormValues();
255269

270+
// Check for FIPS + WebRTC ingestion incompatibility
271+
if (formValues.useFipsEndpoints && (formValues.autoDetermineMediaIngestMode || formValues.mediaIngestionModeOverride)) {
272+
console.error('GovCloud regions do not support WebRTC Ingestion and Storage. Please move to a supported region or disable WebRTC ingestion.');
273+
return;
274+
}
275+
276+
// Check for FIPS + non-GovCloud region
277+
if (formValues.useFipsEndpoints && !formValues.region.startsWith('us-gov-')) {
278+
console.error('FIPS endpoints are not supported in this region.');
279+
return;
280+
}
281+
256282
if (formValues.autoDetermineMediaIngestMode) {
257283
channelHelper = new ChannelHelper(formValues.channelName,
258284
{
@@ -269,7 +295,8 @@ $('#viewer-button').click(async () => {
269295
'[VIEWER]',
270296
formValues.clientId,
271297
formValues.logAwsSdkCalls ? console : undefined,
272-
formValues.useDualStackEndpoints);
298+
formValues.useDualStackEndpoints,
299+
formValues.useFipsEndpoints);
273300
await channelHelper.determineMediaIngestionPath();
274301

275302
if (channelHelper.isIngestionEnabled()) {
@@ -432,6 +459,35 @@ $('#region').on('focusout', event => {
432459
}
433460
});
434461

462+
// Auto-enable FIPS for us-gov regions
463+
$('#region').on('input change', event => {
464+
if (event.target.value.includes('us-gov-')) {
465+
$('#enable-fips').prop('checked', true).trigger('change');
466+
}
467+
});
468+
469+
// Show/hide ingestion warning for us-gov regions
470+
function updateGovIngestionWarning() {
471+
const region = $('#region').val() || '';
472+
const isGovRegion = region.includes('us-gov');
473+
const ingestionEnabled = $('#ingest-media').is(':checked') || $('#ingest-media-manual-on').attr('data-selected') === 'true';
474+
$('#gov-ingestion-warning').toggleClass('d-none', !(isGovRegion && ingestionEnabled));
475+
}
476+
477+
$('#region').on('input change', updateGovIngestionWarning);
478+
$('#ingest-media').on('change', updateGovIngestionWarning);
479+
$('#ingest-media-manual-on, #ingest-media-manual-off').on('click', () => setTimeout(updateGovIngestionWarning, 0));
480+
481+
// Show/hide FIPS region warning
482+
function updateFipsRegionWarning() {
483+
const fipsEnabled = $('#enable-fips').is(':checked');
484+
const region = $('#region').val() || '';
485+
$('#fips-region-warning').toggleClass('d-none', !(fipsEnabled && !region.startsWith('us-gov-')));
486+
}
487+
488+
$('#enable-fips').on('change', updateFipsRegionWarning);
489+
$('#region').on('input change', updateFipsRegionWarning);
490+
435491
function addViewerMediaStreamToMaster(viewerId, track) {
436492
$('#empty-video-placeholder')?.remove();
437493

@@ -619,6 +675,7 @@ const fields = [
619675
{field: 'turns-with-udp', type: 'checkbox'},
620676
{field: 'turns-with-tcp', type: 'checkbox'},
621677
{field: 'turn-one-set-only', type: 'checkbox'},
678+
{field: 'enable-fips', type: 'checkbox'},
622679
];
623680

624681
fields.forEach(({field, type, name}) => {

examples/channelHelper.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class ChannelHelper {
1212
DETERMINE_THROUGH_DESCRIBE: 2,
1313
};
1414

15-
constructor(channelName, clientArgs, endpoint, role, ingestionMode, loggingPrefix, clientId, logger, useDualStackEndpoints) {
15+
constructor(channelName, clientArgs, endpoint, role, ingestionMode, loggingPrefix, clientId, logger, useDualStackEndpoints, useFipsEndpoints) {
1616
this._channelName = channelName;
1717
this._clientArgs = clientArgs;
1818
this._role = role;
@@ -22,6 +22,7 @@ class ChannelHelper {
2222
this._clientId = clientId;
2323
this._logger = logger;
2424
this._useDualStackEndpoints = useDualStackEndpoints;
25+
this._useFipsEndpoints = useFipsEndpoints;
2526
}
2627

2728
// Must be called first
@@ -189,7 +190,8 @@ class ChannelHelper {
189190
...this._clientArgs,
190191
logger: this._logger,
191192
endpoint: this._endpoint,
192-
useDualstackEndpoint: this._useDualStackEndpoints,
193+
useDualstackEndpoint: this._endpoint ? undefined : this._useDualStackEndpoints,
194+
useFipsEndpoint: this._endpoint ? undefined : this._useFipsEndpoints,
193195
correctClockSkew: true,
194196
});
195197
}

examples/createSignalingChannel.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ async function createSignalingChannel(formValues) {
1919
endpoint: formValues.endpoint,
2020
logger: formValues.logAwsSdkCalls ? console : undefined,
2121
useDualstackEndpoint: formValues.useDualStackEndpoints,
22+
useFipsEndpoint: formValues.useFipsEndpoints,
2223
});
2324

2425
// Create signaling channel

examples/index.html

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ <h4 id="subheader">Tracks</h4>
135135
</div>
136136
</div>
137137
</div>
138+
<small id="gov-ingestion-warning" class="text-danger d-none">Warning: GovCloud regions do not support WebRTC Ingestion and Storage</small>
138139
</details>
139140
<h4 id="subheader">Video Resolution</h4>
140141
<p><small>Set the desired video resolution and aspect ratio.</small></p>
@@ -368,6 +369,32 @@ <h6>Audio Codecs Allowed</h6>
368369
</div>
369370
</div>
370371

372+
<div class="d-flex align-items-center mt-3">
373+
<p class="mb-0">
374+
<small>KVS FIPS Endpoint</small>
375+
</p>
376+
377+
<!-- Tooltip icon -->
378+
<span data-delay="{ &quot;hide&quot;: 1500 }"
379+
data-position="auto"
380+
tabindex="0"
381+
class="text-info ml-1"
382+
data-toggle="tooltip"
383+
data-html="true"
384+
title="<p>Enables FIPS endpoints. Supported Regions can be found in the link below.</p>
385+
<a href=&quot;https://aws.amazon.com/compliance/fips/&quot;>Additional information</a>">
386+
<sup>&#9432;</sup>
387+
</span>
388+
</div>
389+
390+
<div class="form-group">
391+
<div class="form-check">
392+
<input class="form-check-input" type="checkbox" id="enable-fips"/>
393+
<label for="enable-fips" class="form-check-label">Enable FIPS Endpoints</label>
394+
</div>
395+
<small id="fips-region-warning" class="text-danger d-none">FIPS endpoints not supported in this region.</small>
396+
</div>
397+
371398
<p class="mt-3"><small>Endpoint Override</small></p>
372399
<div class="form-group">
373400
<input type="text" class="form-control" id="endpoint" placeholder="Endpoint">

examples/master.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ async function startMaster(localView, remoteView, formValues, onStatsReport, onR
8787
role === 'VIEWER' ? formValues.clientId : undefined,
8888
formValues.logAwsSdkCalls ? console : undefined,
8989
formValues.useDualStackEndpoints,
90+
formValues.useFipsEndpoints,
9091
);
9192

9293
await master.channelHelper.init();
@@ -352,10 +353,12 @@ async function getIceServersWithCaching(formValues) {
352353

353354
// Add the STUN server unless it is disabled
354355
if (!formValues.natTraversalDisabled && !formValues.forceTURN && formValues.sendSrflxCandidates) {
356+
const protocol = formValues.useFipsEndpoints ? 'stuns' : 'stun';
357+
const fipsSuffix = formValues.useFipsEndpoints ? '-fips' : '';
355358
if (formValues.useDualStackEndpoints) {
356-
iceServers.push({ urls: `stun:stun.kinesisvideo.${formValues.region}.api.aws:443` });
359+
iceServers.push({ urls: `${protocol}:stun.kinesisvideo${fipsSuffix}.${formValues.region}.api.aws:443` });
357360
} else {
358-
iceServers.push({ urls: `stun:stun.kinesisvideo.${formValues.region}.amazonaws.com:443` });
361+
iceServers.push({ urls: `${protocol}:stun.kinesisvideo${fipsSuffix}.${formValues.region}.amazonaws.com:443` });
359362
}
360363
}
361364

examples/viewer.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,8 @@ async function startViewer(localView, remoteView, formValues, onStatsReport, rem
367367
},
368368
endpoint: formValues.endpoint,
369369
correctClockSkew: true,
370-
useDualstackEndpoint: formValues.useDualStackEndpoints,
370+
useDualstackEndpoint: formValues.endpoint ? undefined : formValues.useDualStackEndpoints,
371+
useFipsEndpoint: formValues.endpoint ? undefined : formValues.useFipsEndpoints,
371372
});
372373

373374
// Get signaling channel ARN
@@ -451,10 +452,12 @@ async function startViewer(localView, remoteView, formValues, onStatsReport, rem
451452
const iceServers = [];
452453
// Don't add stun if user selects TURN only or NAT traversal disabled
453454
if (!formValues.natTraversalDisabled && !formValues.forceTURN && formValues.sendSrflxCandidates) {
455+
const protocol = formValues.useFipsEndpoints ? 'stuns' : 'stun';
456+
const fipsSuffix = formValues.useFipsEndpoints ? '-fips' : '';
454457
if (formValues.useDualStackEndpoints) {
455-
iceServers.push({ urls: `stun:stun.kinesisvideo.${formValues.region}.api.aws:443` });
458+
iceServers.push({ urls: `${protocol}:stun.kinesisvideo${fipsSuffix}.${formValues.region}.api.aws:443` });
456459
} else {
457-
iceServers.push({ urls: `stun:stun.kinesisvideo.${formValues.region}.amazonaws.com:443` });
460+
iceServers.push({ urls: `${protocol}:stun.kinesisvideo${fipsSuffix}.${formValues.region}.amazonaws.com:443` });
458461
}
459462
}
460463

0 commit comments

Comments
 (0)