Changelog
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning. Note: Until we release version 1, breaking changes are allowed to be made using minor version changes.
[Unreleased]
[7.3.0] - 2020-12-02
Changed
- IS-995 - Update api calls to use 2020-10 endpoint
- IS-995 - Pass settings prop to onChange callback on LaunchDarkly change event
Removed
- IS-1088 - Handling additional info show LD flag in SDK before authentication
[7.2.0] - 2020-08-20
Changed
- IS-979 - Align iFrame modal positioning with designs
Fixed
- IS-978 - Make sure iFrame modal isn't added multiple times
- IS-980 - Add cross-site cookie attributes
[7.1.0] - 2020-07-07
Added
- IS-896, IS-898, IS-899, IS-900, IS-902 - Peacock registration flow
- IS-901 - Success screen
- IS-882 - iframe topbar on edit profile screen
- IS-896 - Launch Darkly to package build
- IS-974 - logic when enableIframe is true to check for iOS versionlower than 13 because those versions don't support iFrame scrolling. Fall back to pop-up if enabled in Launch Darkly and redirect if not.
Changed
- IS-899 - iframe and popup window flow to support success screen
- IS-899 - iframe styling to fill full screen on mobile
- IS-941, IS-947, IS-936 - Move iFrame modal topbar and titlebar logic to the SDK to fix graphical issues with them being position fixed within the iFrame content
- IS-945 - match iframe max height with designs
- IS-940 - change how iFrame modal is centered and overflowed to possibly help with graphical glitches from browser rendering
Hotfixed
- IS-999 - add ability to set the type of native bridge message to subscribe to
[7.0.0] - 2020-05-04
Added
- IS-839 - default page config and authenticate option for determining default page authenticate page on load
- IS-881 - option to load authenticate page in iFrame
- IS-882 - mask option for property fields so that telephone field can be masked into a specific format
Changed
- IS-838 - head page titles
- Upload script to include "id" env property value in the whitelist
Fixed
- IS-909 - remove invalid token when userdata fetch fails
[6.0.0] - 2020-02-03
Added
- IS-776 - ZeroBounce config
- IS-791 - configLocationHost property on Identity initialize that lets host apps set custom config location outside of nbc.com
- IS-806 - Parse opt-ins from non-cookie redirect
- IS-775 - Apple Sign-In IDM call
Removed
- IS-776 - BriteVerify config
[5.1.0] - 2019-09-30
Added
- IS-440 - Implement pop-up window option for initialize and authenticate. Refactor api, cookie, and redirect to better handle the different login flows
- Helper function to check local port
- IS-688 - Ability to clear local user
- IS-688 - Config that disables cookie usage
- IS-688 - Request for cross app prompt when nbc.com cookie exists but host app is not on nbc.com
[5.0.0] - 2019-09-11
[4.2.0] - 2019-08-01
Added
- IS-707 - Add profile cookie for passing userData between auth and host, bypassing the requirement to wait for updateProfile api call. When the cookie exists, use the userData from there instead of calling getUserInfo
[4.1.0] - 2019-05-22
Added
- noticket - Add propertyEdit flag to allow host apps to edit existing properties
Changed
- IS-549 - Update api calls and response flows to IDM v3. Refactor external library register and session calls to utilize the same code flow
[4.0.0] - 2019-04-23
[3.0.0] - 2019-03-14
Added
- IS-436 - Google api endpoints for Google sign-in.
- useLocalConfig flag on initialize to load config via localhost:3000
- IS-464 - Send Marketing Referrer attribute via authenticate call
[1.2.0] - 2018-07-30
Added
- IS-281 - A subscribe method to watch when the token cookie changes/is removed, which is now part of initialize
- Refactor some of the initialize state updates to make it more straight forward
- Cross app bridge to parse iOS keychain and Android Smart Lock credentials
- crossAppPrompt Identity method for host apps to prompt users to sign in using their iOS keychain session token
- Add the ability to leverage existing native bridge onMessage callbacks
- Bridge call to disable Smart Lock auto login when user signs out
Changed
- Port native bridge code from authenticate app to this codebase
- CrossApp -- Support existing NBC app keychain structure
[1.1.0] - 2018-07-05
Removed
- Automatic tagging from upload script
- Property cookie check when restoring a record was not needed
Fixed
- Values returned by getCookie now have any leading and/or trailing spaces trimmed
[1.0.0] - 2018-06-13
Added
- nbcIdentityNative flag for host apps to set on initialize
- Set token on custom properties cookie to ensure the correct session is getting the correct properties
- Add defaultValue as a valid property parameter
Changed
- Use the proper healthcheck status endpoint
- Stop saving custom properties to IDM and instead save them to a cookie
- Save userdata cookie by unique IDM id so that opt-ins and other additional information persists
Removed
- Remove all mpid and mParticle isIOS functionality since they are not needed
[0.18.8] - 2018-05-03
Added
- Ensure that the id property is always set on the user
[0.18.7] - 2018-05-03
[0.18.6] - 2018-04-18
Added
- Pass the mParticle.isIOS flag to the authenticate app
[0.18.5] - 2018-04-16
Changed
- Rename session token cookie to 'park-fr'
Removed
- Stop upload script from pushing to git
[0.18.4] - 2018-04-13
Added
- When initialize gets token parameter, overwrite cookie
[0.18.3] - 2018-04-12
[0.18.2] - 2018-04-12
Changed
- Alter getHealth to set server variable if empty
- Allow environment parameter to be passed to the getHealth function
[0.18.1] - 2018-04-11
Changed
- IS-219 - Alter getHealth check to always resolve and add a configurable timeout of 10 seconds
[0.18.0] - 2018-04-11
Added
- IS-202/IS-225 - Store session token as cookie instead of localStorage and rewrite SDK functionality to match
- Remove session token cookie if userinfo call errors
- Add fallback to receive token over hash if host isn't .nbc.co
[0.17.2] - 2018-04-10
Fixed
- Make sure observable notify checks that the observer type is an array before forEach
[0.17.1] - 2018-04-05
Added
- IS-219 - getHealth promise function for host apps to check IDM status json on S3 bucket
- New Identity state: unableToFetchUserData
[0.17.0] - 2018-04-03
Added
- IS-201 - New logout redirect
- logoutRedirectTimeout config parameter
Changed
- IS-30 - Add v in front of identity release version directories to match https://id.nbc.com/sdk/v1.2.1/identity.min.js"
- Rename get receiveMpid to mpid
[0.16.5] - 2018-03-27
Changed
- Removed babel-polyfill and only load polyfills from code-js that are needed
[0.16.4] - 2018-03-23
Changed
- Rename parameters to prepend nbcIdentity to names for specificity
Fixed
- Only do hash replace when token parameter is available
- Only remove defined nbcIdentity hash parameters
- Use location.hash instead of history.replaceState to replace the hash
[0.16.3] - 2018-03-21
Added
- Header check on server fetch response to make sure it's JSON
[0.16.2] - 2018-03-21
Removed
- CORS workaround on getSDKUrl
[0.16.1] - 2018-03-19
Fixed
- Add polyfills for IE11 and Edge compatibility
[0.16.0] - 2018-03-16
Added
- redirectTimeout config property
- send mpid attribute via authenticate function
[0.15.2] - 2018-03-19
Changed
- IS-111 - Allow env to be added to the redirect hash even when set to production
[0.15.1] - 2018-03-13
Added
- URLSearchParams polyfill to make SDK compatible with IE
Fixed
- URL js class in IE has search property not searchParams property
[0.15.0] - 2018-03-09
Added
- IS-152 Base64 Unicode encoding to loginByEmail API call to encode passwords
- Identity.mpid for SDK hosts to get the current user's mParticle ID
[0.14.1] - 2018-03-07
Fixed
- IdentityServer timeout rejection to properly handle errors
- IdentityServer timeout error messaging to display proper timeout seconds
[0.14.0] - 2018-03-06
Added
- IdentityConfig briteVerify object
Fixed
- IdentityServer request rejection on a timeout
[0.13.2] - 2018-03-05
Added
- mParticle ID (mpid) from redirect hash to Identity Record
Changed
- Upload script to follow new version structure
[0.13.1] - 2018-03-01
Added
- Origin parameter to authenticate call to indicate auth origin (Vote, BAT, ...) to analytics
- redirectDelay config property
Removed
- Platform parameter
Fixed
- Topbar property was added to hash under "platform" instead of "topbar"
[0.13.0] - 2018-02-28
Added
- Topbar parameter to initialize call to hide/show TopBar in the forms app
Changed
- Check environment proxy in the api calls to allow different endpoints for local/aws and id.nbc.com
- Update identity config module to contain analytics entries
- Moved platform authenticate parameter to initialize call
[0.12.13] - 2018-02-27
Added
- Platform parameter to authenticate call to pass a custom platform to analytics
- Product, Show, and Season parameters to config
[0.12.12] - 2018-02-19
Added
- Added IdentityAPI resources module and updated Identity to use it instead of inline API calls
- Added IdentityAnalytics event bus module
- Copied example app assets and config JSON into example directory for documentation
- Added README to example directory
Changed
- Updated identity-config to pass theme config through
- Removed assets and config directories from the repo
- Moved the images directory into docs because the only image was the docs logo
- Updated the upload script to remove assets, config, and images directories
- Renamed sdk directory to public to make example app work locally
- Made the server load config.json from S3 bucket if local
- Prefixed openidm to profileUpdate API call
[0.12.10] - 2018-02-15
Changed
- Removed legacy directory
- Moved Identity modules into src/modules directory
- Moved identity-sdk-helpers index.js into src/package.js and bundle it into identity-package for node module usage
- Cleaned up landing page css
- Removed some rollup config and node modules that were added to the last version that isn't needed anymore
- Modified the upload script to upload specific files and directories to s3 based on the new structure
- Removed the identity minified versions from the repo
[0.12.9] - 2018-02-15
Changed
- Pointed upload script to develop branch instead of master
- Removed unneeded
runfromyarn run upload dev - Created identity-sdk-helpers modules directory that contains classes to be shared in a package
- Updated package.json and rollup.config.js to bundle identity-sdk-helpers package
[0.12.8] - 2018-02-14
Added
- Included 2 new example JSON files for config testing and presentation
Changed
- Removed background css from SDK home screen
[0.12.7] - 2018-02-11
[0.12.6] - 2018-02-11
Added
- General assets folder to host app specific assets
- Added assets documentation
Changed
- Tried setting environment to stage, but reverted back to dev due to redirect issues
- Added Yarn as a package manager
- Added theme parameters to example.json
- Moved authenticate directory out of the sdk into a legacy directory for now and updated test and build configs to remove authenticate
[0.12.5] - 2018-02-05
Fixed
- Fixed duplicate element id (signin-password/signup-password)
[0.12.4] - 2018-02-02
Changed
- IS-75 Remove all form password error validation other than "{ or }" and length "between 5-50 characters"
- IS-75 Display a specific bracket error message
[0.12.3] - 2018-02-02
Changed
- IS-74 Add form email validation error for aliases that says "Sorry, that email address is not allowed, please enter another one."
Fixed
- IS-71 Added AWS domains to the environment match function in the Identity.initialize function to fix issue with "Forget Password" link navigating to the wrong environment
[0.12.2] - 2018-02-01
Changed
- IS-76 Change form password error from "Please ensure your password is 5-50 characters." to "Please make sure your password is 5-50 characters."
[0.12.1] - 2018-01-31
Fixed
- IS-73 Allow users to click "Sign In" on the "Already Registered" error overlay to navigate to the sign in page
[0.12.0] - 2018-01-30
Added
- Facebook confirmation page now has a back button leading to the sign up page
- SSO-50 Implemented redirect URL restriction based on whitelist from IdentityConfig in Authenticate
- SSO-49 Added basic error overlay that is shown when Authenticate page is loaded without required parameters
Changed
- SSO-48 Got rid of Identity result value 'error'
- SSO-47 Added options to Identity.initialize() to replace URL fragment parsing
Fixed
- Fixed documentation and default value of facebookAppId in IdentityConfig to be string everywhere consistently
- Added auth-type="rerequest" to Facebook login buttons so that permissions are asked for again when necessary
[0.11.4] - 2018-01-26
Added
- Implemented support for the Identity#authenticate() facebookToken option on the Authenticate side
[0.11.3] - 2018-01-26
Changed
- Made example.json config sparse by removing properties with default false values
Fixed
- Result cancelled now shows up again when you cancel Authentication from unauthenticated state
- Fixed it so that the additional information is skipped by default when all properties have been previously specified
[0.11.2] - 2018-01-26
Changed
- Improved CHANGELOG to more closely match keepachangelog v1.0.0, including dates
[0.11.1] - 2018-01-26
Changed
- Local CORS proxy now logs request time
- Reviewed and slightly revised Facebook init code
[0.11.0] - 2018-01-26
Added
- Added CORS proxy middleware in Browsersync for local testing
- LOCAL true/false is now available in JS using rollup-plugin-replace
- Authenticate now verifies URL fragment comes from Identity and persists the parameters
Changed
- BrowserSync now serves from repo root instead of from /sdk/ to more closely match https://id.nbc.com/sdk/ situation
- Improved IdentityServer getSdkUrl() and getCallUrl() using s3-website to provide CORS support for fetching config
- Identity#authenticate() now adds
Identity=<version>parameter
[0.10.1] - 2018-01-24
Fixed
- Facebook buttons now use permissions settings from config
[0.10.0] - 2018-01-24
Added
- Login and registration flows now support Facebook Connect
[0.9.0] - 2018-01-23
Added
- Shortcut icon and Apple touch icon placeholders
- Sign up flow now requests a mandatory rules opt-in and optional sponsor opt-in
Removed
- Sign up flow no longer requests first and last name by default
Fixed
- Additional info step now correctly displays fields based on properties URL param and config settings
- Background image and various other components are now in style with AGT
[0.8.0] - 2018-01-22
Added
- Added button to update first and last name to Example app
Changed
- Made sponsor opt-in property required, so when you request it you have to opt-in or cancel
- Complete review of config and property handling code throughout Identity and Authenticate
- IdentityConfig now takes care of combining specific with standard property configurations
- Added some validation code to IdentityConfig
- IdentityUser now takes care of using default value from IdentityConfig
Fixed
- Input rendering for additional info to use all supported identity properties
[0.7.2] - 2018-01-18
Changed
- Improvements to opt-in flow
[0.7.1] - 2018-01-18
Changed
- Customized some IdentityServer error messages in Authenticate
Fixed
- Request for properties now forwards to the additional info screen when already logged in
- Position of error dialog in desktop mode
[0.7.0] - 2018-01-18
Added
- Overlay with server side validation message
- Client-side form validation and error feedback during input
Removed
- Alert box for server side validation message
[0.6.0] - 2018-01-17
Added
- Additional authenticate button requesting a value for "sendFoo" during signin/up
- New MaterialForm class to handle form behavior and upcoming validation
Fixed
- Input rendering and behavior in the additional properties form during signin/up
[0.5.0] - 2018-01-16
Added
- App URL fragment (aka hash) is now restored upon redirect back from authenticate page
- Authentication result is now fed back to the App via the Identity.result property
Removed
- Success screen from authenticate page
[0.4.0] - 2018-01-16
Added
- Additional info screen, shown when a user authenticates and requested properties are missing
[0.3.4] - 2018-01-15
Fixed
- And yet another attempt at trying to get the version-tag-build-upload-tag script combo working properly
[0.3.3] - 2018-01-15
Fixed
- And another attempt at trying to get the version-tag-build-upload-tag script combo working properly
[0.3.2] - 2018-01-15
Fixed
- Changelog needs to be updated before new documentation is generated
[0.3.1] - 2018-01-15
Fixed
- Temporary S3 URL references to no longer use /sdk/ subdirectory
[0.3.0] - 2018-01-15
Added
- Version as cache buster to authenticate page and identity config URLs
- Repo is tagged with environment (e.g: dev) on succesful upload
Changed
- Fixed root SDK page stylesheet reference
- No longer using /sdk/ subdirectory at local and S3 workaround URLs
- Simplified Identity to use a single IdentityServer instance
[0.2.0] - 2018-01-15
Added
- Some basic utility modules: version, Logger and Observable
- Environment specific reset password support to authenticate page
Changed
- Refactored Identity to a class with read-only property protection and using the new utility modules
- Also added read-only property protection to IdentityConfig, IdentityProperty, IdentityRecord and IdentityUser
- Cleaned up Authenticate to share more code with Identity through the new utility modules etc.
[0.1.0] - 2018-01-11
Added
- Basic project skeleton with package.json, README.md, CHANGELOG.md
- Code linting using: ESLint
- Module bundling using: rollup.js
- Local development server using: Browsersync
- Documentation using: ESDoc
- Unit testing using: Jest
Manual
Reference
Source
Test
