Skip to content

Releases: aws-samples/aws-lex-web-ui

0.9.0

05 Aug 23:59
Compare
Choose a tag to compare

This release adds a couple of simplified deployment options:

  1. Simplfied CloudFormation stack without a deployment pipeline.
    It uses CodeBuild to create the config files and to deploy directly
    to S3.
    This mode is the new default of the CloudFormation setup so if
    you want to keep using the deployment pipeline setup (CodeCommit,
    CodeBuild, CodePipeline), you are going to need to explicitly set the
    CreatePipeline parameter to true.
  2. AWS Mobile Hub project file that deploys the Web UI to S3 fronted
    by a CloudFront distribution. The Mobile Hub project also creates the
    Cognito Identity Pool, Lex Bot and IAM Roles. This allows to deploy the
    application from a single file hosted in github.

NOTE: At this point, there is a Content-Type issue with the files
deployed using the Mobile Hub project file. The Mobile Hub deployed
files seem to have its content-type set to octect-stream which causes the
browser to download the files instead of rendering. To work around this
issue, you can re-upload the files using the S3 console or aws cli. The
Makefile in the root dir can be used to upload the files with the right
content type. Use the command: make sync-website (requires setting
the bucket name with the WEBAPP_BUCKET environmental variable). This
issue will be further investigated.

Added

  • Added Mobile Hub deployment
  • Added new CloudFormation template codebuild.yaml used to deploy the
    application without a pipeline
  • Added CreatePipeline parameter to the master.yaml template to control
    whether the stack should create a deployment pipeline
  • Added build-time support to set web UI config fields that are commonly
    changed using environmental variables. This is in preparation to set
    these variables from CloudFormation parameters. The new variables include:
    • BOT_INITIAL_TEXT
    • BOT_INITIAL_SPEECH
    • UI_TOOLBAR_TITLE
    • UI_TOOLBAR_LOGO
  • Added a new config directory in the root of the repo that includes
    build configuration
  • Added a new src directory in the root of the repo to hold the
    website files. This includes a modified version of the iframe parent
    page and bot-loader that resides in the lex-web-ui/static/iframe
    directory. Eventualy, this new version should replace, somehow get
    merged with the other, or sourced in both places from a single file.
  • Added a server.js file for quick development and testing. It loads
    the sample page from the dist and source directories. It can be used
    with the command npm start from the root directory. You may need to put
    the right values in the config files under src/config to make it work.
  • Added CloudFormation format statement to all templates files
  • Added .npmignore file
  • Added sample code on how to use the Vue plugin for including the
    component into an existing Vue application

Changed

  • [BREAKING] CloudFormation setup now defaults to not creating a
    development pipeline and just copy the prebuilt files to an S3 bucket.
    To use the pipeline, you now have to set the CreatePipeline parameter
    to true
  • Refactored the build scripts and Makefiles to have better separation
    of config and code. The config config used by the Makefiles now resides
    under: config/env.mk. Some of the names of the Makefile have changed so
    you may need to change your environment if you were using the Makefiles
    from other script.
  • The update-lex-web-ui-config.js build script now takes its config from
    a node js module in the config directory. The config is driven by the
    BUILD_TYPE environmental variable which controls whether the deployment
    is building the app from full source or using the dist dir. For this, the
    value of the BUILD_TYPE variable can be set to either full or dist.
  • Updated CodeBuild environment to node js v6.3.1 using ubuntu
  • Renamed iframe bot.css to bot-loader.css
  • Updated dependency versions
  • Clarified READMEs

0.8.3

29 Jul 06:00
Compare
Choose a tag to compare

Changed

  • Moved default icons from config to sample application
  • Reduced the size of silent sounds
  • Updated dependencies
  • Added input validation and safer var initialization to store

Fixed

  • Fixed mic icon tooltip message to show correct status
  • Excluded LexApp from unit testing which was causing unit test issues
  • Fixed audio playback on mobile due to autoplay bug
  • Fixed input container on mobile not showing on latest vuetify

0.8.2

27 Jul 16:48
Compare
Choose a tag to compare

Fixed

  • Fixed config initialization issues

0.8.1

25 Jul 22:52
Compare
Choose a tag to compare

Fixed

  • Fixed config initialization and parentOrigin issues

Changed

  • Clarified documentation
  • Exported Vue plugin from library
  • Added deep merge capability to mergeConfig

0.8.0

24 Jul 21:16
Compare
Choose a tag to compare

This release makes it easier to include the chatbot UI into existing
sites. The project now distributes a pre-built library in the dist
directory. This allows to use the chatbot UI without having to build the
application. The root directory of the repo now contains a package.json
file to make it easier to npm install it.

There are a few breaking changes regarding the supported URL parameters
which now use the lexWebUi prefix to avoid conflicts when including
the component in an existing site.

Changed

  • [BREAKING] Changed config passing URL query parameter from config
    to lexWebUiConfig
  • [BREAKING] Changed URL query parameter to run in embedded mode from
    embed to lexWebUiEmbed
  • The parentOrigin config variable now defaults to
    window.location.origin to support single origin iframe setups
    without having to set it in the the JSON config file
  • Restructured Vuex store including:
    • Split state, mutations and actions to individual files
    • Moved audio, recorder, aws credentials/clients out of the state.
      Those now exist as module variables visible from the store actions
    • AWS credentials from parent are now manually recreated to avoid
      including the AWS SDK as part of the store
  • Changed from using vuex mapGetter in components to instead use the
    store state variables. This was done to avoid redistributing vuex
    in the built library and to support vuex being loaded outside of the
    chatbot ui.
  • Moved Vue component initialization from LexApp.vue to LexWeb.vue
  • Moved Page component to LexApp.vue from LexWeb.vue
  • Moved webpack related import config from recorder to the general
    webpack config
  • Commented out webrtc-adapter import in preparation to deprecating it
  • Changed constructor arguments of lex client to accept a
    lexRuntime client instead of AWS credentials or SDK config. This allows
    redistributing without having to include AWS SDK as a direct dependency
  • Changed iframe container class name
  • Rearranged the README files. The main README contains info about the
    npm package and instructions to use the library. The CloudFormation and
    application details where move to different README files.

Added

  • Created a Vue plugin that can be used to instantiate the chatbot ui
    both as an import in a webpack based project or by directly sourcing
    the library in a script tag. The plugin registers itself and adds
    a property named $lexWebUi to the Vue class. It adds a global Vue
    component name LexWebUi
  • Added a distribution build config and related scripts
  • Added an example on how to encode the URL query parameter config
  • Added a new config object key urlQueryParams holding the url query
    parameters

0.7.0

15 Jul 02:18
Compare
Choose a tag to compare

Added

  • Added capability to send messages from parent page to iframe using
    postMessage
  • Added config field to control whether the iframe should automatically
    load
  • Added a ready event sent by chatbot UI when running embedded to signal
    the parent that the component loaded successfully
  • Added capability to programatically post text messages to the
    chatbot UI from a parent page when running embedded as an iframe
  • Added capability to programatically minimize the chatbot UI
    from a parent page when running embedded as an iframe
  • Added Config field to control whether the iframe should load minimized

Changed

  • Major refactoring of the bot loader script to make it more modular
  • Improved the documentation to include more details on embedding as an iframe
  • Bumped dependency versions
  • Changed indentation of various portions of the chatbot UI code to
    conform to the the latest airbnb eslint config
  • Changed vuetify components to work latest version
  • Changed responseCard rendering style
  • Changed bot loader CSS to better adapt to smaller resolutions
  • Changed iframe minimize/expand to use new parent to iframe message passing

Fixed

  • Fixed responseCard parsing when using postContent

0.6.0

07 Jul 21:09
Compare
Choose a tag to compare

Added

  • Added the ability to pass dynamic configuration from parent page to the
    bot loader via an event
  • Added response cards object display to sample parent page

Changed

  • Bot loader script now uses its own credential variable instead of setting
    it into the global AWS object
  • Bumped AWS SDK version in bot loader
  • Added functionality to remove event handlers in bot loader for events that
    only fire once

Fixed

  • Typos, invalid links and display issues in README files