Rasa X Changelog

[0.23.3] - 2019-12-06

Added

  • All responses to CORS preflight requests now set the Access-Control-Max-Age header to 30 minutes (this can be configured by using the SANIC_ACCESS_CONTROL_MAX_AGE environment variable).
  • JWT token expiration time can now be configured by using the JWT_EXPIRATION_TIME environment variable.

Fixed

  • Fixed compatibility issues with Rasa X 0.23 and OpenShift.
  • Fixed database pod crash due to wrong permissions after a helm upgrade.
  • Fixed new pods stuck after helm upgrade due to volume attach issues.
  • Fixed ImportError when using Integrad Version Control in environments where git is not available.
  • NLU training data for the same intent will now be dumped to the same file.
  • Fixed database pod crash due to wrong permissions after a helm upgrade.
  • Fixed new pods stuck after helm upgrade due to volume attach issues.

Changed

  • POST /projects/<project_id>/synonyms/<synonym_id no longer throws an error when trying to map values which have been previously mapped or are repeated.
  • POST /projects/<project_id>/synonyms/<synonym_id no longer throws an error in case values are mapped which equal the synonym they are mapped to.
  • Upgraded postgres container to 11.3.0

[0.23.2] - 2019-11-29

Added

  • Added the ability to create SAML users on the command line using the rasa_x_commands.py script. The command is sudo python rasa_x_commands.py create-saml admin NAMEID, where NAMEID should be the expected name ID SAML property of the user.

Fixed

  • Fixed the created branch’s name not being updated after a first commit in Integrated version control
  • Use correct Bearer authorization header in the documentation for adding a Git repository to Rasa X.

Changed

  • Log events on the Conversations screen to better understand the user experience. NOTE: These events are dropped by the server unless telemetry is enabled.

Removed

  • Removed attributes column in rasa_x_user SQL table (this is not needed for SAML authentication).

[0.23.1] - 2019-11-28

Fixed

  • Fixed failing helm upgrade when appVersion was changed. If the upgrade fails with an error message such as:

    Error: UPGRADE FAILED: cannot patch "rasa-app" with kind Deployment: Deployment.apps "rasa-app" is invalid:     spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/instance":"rasa", "app.kubernetes.io/managed-by":"Helm", "app.kubernetes.io/name":"rasa-x", "app.kubernetes.io/version":"0.23.0", "app.name":"app-deployment.yaml", "helm.sh/chart":"rasa-x-0.23.0"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable && cannot patch
    

    The following workaround can be used to upgrade:

    kubectl delete deployment --namespace <rasa namespace> -l app.kubernetes.io/instance=<rasa release name>
    

    After the upgrade the issue should not happen anymore.

  • Fixed an issue where the Conversations screen would attempt to fetch a single conversation rather than retrieving the list of further conversations

[0.23.0] - 2019-11-26

Added

  • Add command line argument rasa x --config CONFIG, to specify path to the policy and NLU pipeline configuration of your bot. (default: config.yml)
  • Added PUT /users/<username> endpoint which allows users to update their data attribute.
  • Helm chart variable nginx.annotations to configure annotations on the nginx service.
  • Kafka event consumer. The event broker configuration is loaded from the event_broker section in endpoints.yml. See the Rasa Kafka event broker docs for an overview of configuration parameters.
  • Added Integrated Version Control while on server mode as an experimental feature.
  • Support for loading and annotating examples with retrieval intents (see the Rasa docs on retrieval actions). Training models using NLU data that contains retrieval intents is not supported, and has do be done using the CLI (rasa train).
  • Add experimental support for Integrated Version Control. Please see the documentation for instructions on how to activate and use this feature.
  • Custom response data is now displayed in Conversation screens

Fixed

  • Fixed coroutine 'mark_latest_as_production' was never awaited warning.
  • Partial permission grants against a subset of attributes are now no longer retained when a more permissive grant against that resource / action is created
  • Responses no longer displays the last selected response template when all items are either deleted or removed by search

Changed

  • The POST /synonyms/<entity_synonym_id> endpoint now returns the created mapped values on success.
  • Message buttons now continue to show after they are relevant, but are disabled.
  • A placeholder is now displayed on “Talk to your bot” page when no model is trained
  • A model will only be marked as production automatically in case there is currently no other model marked as production.
  • Order of returned permissions is now fixed (alphabetized), so related behaviour should be more predictable.
  • Added warnings and improved error handling on the Training Data screen to identify out-of-bounds entity annotation

[0.22.2] - 2019-11-08

Added

  • Environment variable RUN_EVENT_CONSUMER_AS_SEPARATE_SERVICE to determine whether the event consumer is run as a separate Docker service. If true, Rasa X will not launch the event service, and expects that it is run in a separate container (recommended for setups that experience high message load). If false or unset, Rasa X will launch the event service automatically as a subprocess.
  • In server mode the event consumer will expose an HTTP endpoint GET /health that indicates readiness (status code 200). The port can be further defined using the SELF_PORT environment variable (5673 by default).

Fixed

  • Changed Sanic response timeout to 1h in order to prevent errors when training models with a lot of training data.
  • Rasa X no longer gets stuck in migrations which are required to work with Oracle.
  • Fixed error with Oracle databases when creating table entity_synonym_value.

Changed

  • The POST /synonyms/<entity_synonym_id> endpoint now returns the created mapped values on success.
  • Fixed outdated deployment documentation.

[0.22.1] - 2019-10-29

Fixed

  • Messages are no longer duplicated when copying to Interactive Learning
  • Entity Annotation now truncates leading / trailing spaces
  • Fixed bug that stopped story visualization tab from rendering

[0.22.0] - 2019-10-22

Added

  • Added Python 3.7 support.
  • Show “Conversation started on…” at top of Conversations to make the order of messages clearer.
  • Intent / Entity / Action filters are now searchable
  • Highlight words on hover in NLU Training data to indicate that they can be annotated
  • Users can now follow a 4 steps hints tutorial on the conversations screen
  • Support for loading and annotating examples with retrieval intents (see the Rasa docs on retrieval actions). Training models using NLU data that contains retrieval intents is not supported, and has do be done using the CLI (rasa train).

Fixed

  • The Ansible playbook now specifies the LockStore settings in the endpoints.yml.
  • Corrected indentation for additionalChannelCredentials in the Helm chart.
  • Users stay in interactive learning after making a correction if they were beforehand.

Changed

  • Filtering Conversations by Date now has a dedicated dropdown outside of the filters panel
  • API endpoint to upload a Rasa model config now accepts the config as plain YAML (PUT /settings). The endpoint returns the saved config as plain YAML.
  • API endpoint to fetch the Rasa model config (GET /settings) returns the config as plain YAML.
  • Conversation filter bar is now always visible, whether or not filters are applied
  • Move to tippy.js@5
  • The Helm chart now has an option to configure an external secret instead of using a generated one. See the docs for more details.
  • The initial delays for liveness and readiness probes in the Helm chart are now configurable.

Removed

  • Removed support for Python 3.5.
  • Removed Conversation filter options for Policy and Maximum Confidence

[0.21.5] - 2019-10-21

Changed

  • Use WAL mode for SQLite database to avoid database is locked errors.

Fixed

  • Buttons for suggested responses to bot messages work again.
  • The input for manually adding training data no longer blanks out whenever you write a string that is already in your data set.
  • Interactive learning timestamps are incremented correctly and all corrected events are shown.

[0.21.4] - 2019-10-10

Added

  • Port of 0.20.4 (RabbitMQ SSL auth).
  • Port of 0.20.5 (SSL CA file using RASA_X_SSL_CA_FILE environment variable).

Fixed

  • The Ansible playbook now specifies the LockStore settings in the endpoints.yml.

Removed

  • Removed warnings regarding unset variables (UUID, METRICS_CONSENT) when running Rasa X EE.

[0.21.3] - 2019-10-03

Fixed

  • Decode JWT public key to avoid TypeError in GET /version endpoint.
  • Custom rasax.nginx files without environment variables are no longer emptied in nginx’s entrypoint.sh.

[0.21.2] - 2019-10-01

Added

  • Helm chart for a simplified cluster deployment. See the Kubernetes / OpenShift docs for more information.

Fixed

  • Catch tarfile.TarError-type errors when reading metadata from zipped models.

[0.21.1] - 2019-09-26

Fixed

  • Retraining models with unchanged training data does not create duplicated models.

[0.21.0] - 2019-09-24

Added

  • support for channel field in response templates
  • added query parameter q to GET /responseGroups to search by response text
  • added query parameter template to GET /responseGroups to search by template name. If both q and template are specified, both conditions are combined with an AND.
  • Added ability to pass a query argument to the SQL connection URL using the DB_QUERY environment variable. The value of this variable needs to be a json dump of the query dictionary.
  • redis services acting as a persistence layer for conversation locks in rasa
  • endpoint for fetching runtime configs at GET /api/config (accepts ?token=RASA_X_TOKEN as authentication)
  • environment variables SQL_POOL_SIZE (default: 50) and SQL_MAX_OVERFLOW (default: 100) can be set to control the pool size and maximum pool overflow for SQLTrackerStore when used with the postgresql dialect
  • feedback for success/failure when uploading examples
  • New ui for responses and the ability to live preview the changes made to them
  • Now able to correct intents from Talk to Your Bot
  • added endpoint PUT /responseGroups/<template name> to bulk rename templates
  • added endpoint GET /projects/<project_id>/data.md to download the NLU training data as markdown file
  • added new endpoints for entity synonyms management (GET /synonyms, POST /synonyms, GET /synonyms/<entity_synonym_id>, POST /synonyms/<entity_synonym_id>, PUT /synonyms/<entity_synonym_id>, DELETE /synonyms/<entity_synonym_id>, PUT /synonyms/<entity_synonym_id>/<entity_synonym_value_id>, DELETE /synonyms/<entity_synonym_id>/<entity_synonym_value_id>)

Fixed

  • Clicking outside of the Add log modal on the Annotate new data tab now closes the modal
  • The last remaining Story is now immediately removed from view if deleted
  • Debug logs are correctly printed if the log level is set to DEBUG
  • Shortened table names to comply with Oracle’s table name length limit
  • Prevent tagging of models that have an incompatible version

Changed

  • uploading templates will now fail schema validation if extra properties are provided

  • rasa-production and rasa-worker are started with the config-endpoint argument, making these services pull the runtime config from the /api/config endpoint

  • Changed Rasa X API JWT encryption mechanism to RS256. Key pairs are generated automatically on startup. Alternatively, private and public key files can be mounted in the rasa-x container. They will be read from paths specified by two environment variables:

    • JWT_PUBLIC_KEY_PATH (default: /app/public_key)
    • JWT_PRIVATE_KEY_PATH (default: /app/private_key)

    These variables may also be set when Rasa X is started locally from the command line. The previous environment variable JWT_SECRET in combination with symmetric encryption is no longer supported. The rasa services still support the --jwt-secret command-line argument for encryption of the underlying Rasa server.

  • the GET /version endpoint returns JWT public key information

  • use rasa 1.3.1

  • Changed property “story_created_from” of “Story Created” metrics event to take a pre-established set of values, instead of a URL path.

  • Added property “message_annotated_from” to “Message Annotated” metrics event. This new property describes from where the message was annotated.

  • Use guess_format when loading data instead of deprecated _guess_format

  • Use correct domain when reading local story files to avoid domain warnings

Removed

  • support for symmetric JWT encryption of the Rasa X API using HS256 with the JWT_SECRET environment variable

[0.20.5] - 2019-10-09

Added

  • Added support to provide a CA file to set the SSL context. The CA file path can be set with the environment variable RASA_X_SSL_CA_FILE.

Fixed

  • Fixed bug in SSL auth in Rasa X EE server.

[0.20.4] - 2019-19-08

  • Added support for RabbitMQ TLS authentication. The following environment variables need to be set: RABBITMQ_SSL_CLIENT_CERTIFICATE - path to the SSL client certificate (required) RABBITMQ_SSL_CLIENT_KEY - path to the SSL client key (required) RABBITMQ_SSL_CA_FILE - path to the SSL CA file (optional, for certificate verification) RABBITMQ_SSL_KEY_PASSWORD - SSL private key password (optional)
  • Added ability to define the RabbitMQ port using the RABBITMQ_PORT environment variable.

[0.20.3] - 2019-09-18

Fixed

  • domains containing non ascii characters get properly dumped as using utf8
  • response texts can now be longer than 255 chars
  • Cancel button on Share Bot popup now behaves as expected on Models tab
  • Long story titles now truncate when hovered, displaying the compare button

Changed

  • Changed property “story_created_from” of “Story Created” metrics event to take a pre-established set of values, instead of a URL path.
  • Added property “message_annotated_from” to “Message Annotated” metrics event. This new property describes from where the message was annotated.

[0.20.2] - 2019-08-28

Added

  • new endpoint GET /responseGroups to retrieve responses grouped by their template name
  • field edited_since_last_training to response templates to check whether this template was included in a model training
  • endpoints for regex features (/projects/<project_id>/regexes)
  • added support to run Rasa X EE server using HTTPS. Certificate and keyfile locations need to be supplied using environment variables RASA_X_SSL_CERTIFICATE and RASA_X_SSL_KEYFILE.
  • endpoints for lookup tables (GET, POST /projects/<project_id>/lookupTables, GET, DELETE /projects/<project_id>/lookupTables/<lookup_table_id>)
  • List, create, update and delete regexes from the UI
  • List, upload and download lookup tables from the UI

Fixed

  • fixed train_cron.py script, and added some tests for it
  • PUT /api/stories correctly deletes old stories before adding new ones
  • form events correctly render in talk to your bot stories

Changed

  • use Segment instead of Mixpanel for metrics (metrics.py), and add new events
  • Downloaded training data does no longer include the content of the lookup tables, but only the link to the lookup table file. The lookup table can be downloaded separately.

[0.20.1] - 2019-08-12

Added

  • conversation object includes new field sender_name
  • querying GET /conversations/<conversation_id> with a query parameter since only returns conversation events after since
  • nginx upstream hosts can be set using RASA_X_HOST (default: rasa-x:5002), CUSTOM_ACTION_HOST (default: app:5055), RASA_PRODUCTION_HOST (default: rasa-production:5005)
  • option for metrics tracking in server mode

Fixed

  • custom: templates no longer fail schema validation
  • invalid auth tokens now cause a redirect to the login page even if they didn’t result from a timeout
  • Rasa X can be started without stories
  • wrong results when using GET /conversations with an intent query
  • the ansible playbook correctly updates the version variables in the .env file when updating an existing Rasa X instance
  • wrong redirecting of requests to /api/chatToken
  • MappingPolicy triggers are no longer removed from the domain
  • message which said models are not supported due to an incompatible model version of None
  • Rasa X no longer omits initial slot values in the domain which are 0
  • in server mode, the url to connect to duckling is automatically configured via the RASA_DUCKLING_HTTP_URL environment variable

Changed

  • when running in local mode, read Rasa events from SQLite events stream (events.db)
  • adding a template now returns status code 201 instead of 200
  • adding stories now provides multiple options for how you could achieve that
  • show different terms and conditions for Rasa X EE
  • using newer rabbitmq image which fixes https://github.com/bitnami/bitnami-docker-rabbitmq/issues/93

[0.20.0] - 2019-07-26

Added

  • multi-select stories to compare them using shift-click
  • indexes for faster queries on NLU training data and conversation logs
  • environment variable DB_DRIVER allows using a custom database driver even if Rasa X is running in local mode
  • show input channel Tester for conversations by users which were invited with a link (only works with rasa >= 1.1.6)
  • endpoints to create, update, delete actions
  • Empty state placeholders with attached call to actions for a better user experience
  • PUT /settings returns a meaningful error if mandatory keys are missing from the YAML config, or if the YAML fails to be parsed correctly
  • nginx rule routing traffic to /api/chat to http://rasa-production:5005/webhooks/rasa/webhook

Fixed

  • correctly show input channel in conversations tab
  • corrected credentials for rasa channel in Kubernetes / OpenShift guide
  • ESnext features now polyfilled as well as precompiled (for our supported browsers)
  • visualizations now work and render correctly for almost all stories, with the added ability to pan and zoom!
  • slot values containing # no longer causes an error during startup
  • robust model ordering in case two models have the same training time
  • fix code editor on firefox
  • version is reported correctly when Rasa X has been installed in editable mode (added a missing setuptools-scm requirement)
  • Prevent the on-boarding modal from showing once the user talks to his bot
  • if visualizations ever crash, they do so without the requirement to refresh your browser window to browse other non-broken stories

Changed

  • conversation trackers are computed from the Rasa X database instead of fetching them from Rasa
  • allow adding NLU examples to projects without domains
  • missing environments.yml leads to a warning for deployed instances
  • improve styling and general user experience for story editing
  • The way Popups are rendered has been updated for a better experience.
  • enforce event order by sorting them by timestamp when retrieving them from the database
  • move endpoint GET /domainActions to GET /project/<project_id>/actions
  • support now directs users to the forum and adds version info
  • layout of Talk to Your bot pages brought to design spec

[0.19.5] - 2019-07-09

Fixed

  • bug which removed logging handlers

[0.19.4] - 2019-07-09

Fixed

  • bug which suppressed the logging for Rasa X

Changed

  • Rasa containers don’t run in debug mode by default

[0.19.3] - 2019-07-05

Added

  • deployment instructions for custom action servers
  • Start of end-to-end testing using cypress. At the moment only covers password login flow.
  • configurable Rasa X installation directory by using environment variable RASA_HOME

Fixed

  • use OpenShift-compatible RabbitMQ version
  • support Rasa 1.1.4 feature to individually featurize entities
  • serialisation of actions at endpoint GET /domainActions as a list instead of a set
  • HTTP API Spec in documentation shows all endpoints which are specified in the api spec file
  • nginx proxy configuration does not lead to a duplication of trailing slashes anymore (fixes #3909)

Changed

  • faster queries for intents by using endpoint GET /projects/<project_id>/intents
  • the usage of the app container is now optional when deploying Rasa X

[0.19.2] - 2019-06-17

Fixed

  • rendering of duplicate user messages/actions in the conversations screen

[0.19.1] - 2019-06-13

Added

  • use alembic for database schema migrations
  • annotated NLU data is automatically added to the training data
  • automatic injection of domain and templates from the first discovered model in server mode
  • port of Rasa X and Rasa server can be configured via command line arguments in local mode
  • API endpoint to update role users at PUT /roles/<role>/users with a payload of a list of users who should be associated with that role
  • query parameter ?username to GET /users endpoint, returning users whose username matches pattern
  • query parameter ?role to GET /users endpoint taking a comma-separated list of roles, returning users whose roles match any of the supplied values
  • added configuration of domain in the UI as well as bidirectional syncing of that configuration with the file on disk
  • added RBAC permission UI

Fixed

  • prepare all volume mounts in ansible playbook with correct permissions
  • remove non existing endpoints from API spec
  • updated instructions to create user in quick deployment guide
  • uploaded entity synonyms are dumped to the local training data md file
  • NLU logs can be created and promoted to training examples without a loaded model
  • entity extractors are persisted in training data

Changed

  • the db is not longer required in the environment.yml
  • endpoint to assign a single role to a user PUT /users/<user>/roles/<role> has been replaced with a multi-role update at PUT /users/<user>/roles with a list of role names (strings) as json payload
  • add index to column conversation_id of table conversation_event
  • add is_default and description columns to user_role table
  • improved query performance for model_for_tag queries
  • turn off SQLite key constraints for schema migrations
  • improved data injection performance by reducing the number of SQL commits

[0.19.0] - 2019-05-21

Added

  • support for limit/ offset queries to /conversations endpoint
  • endpoint POST /conversations to manually create conversations
  • query interactive for GET /conversations endpoint to exclude interaction learning conversations
  • endpoint POST /conversations/<sender_id>/predict to predict the next action for the sender
  • endpoint POST /conversations/<sender_id>/execute to execute action in conversation
  • endpoint PUT /conversations/<sender_id>/events to modify events in a conversation
  • support for limit/ offset queries to /conversations endpoint
  • API endpoints to PUT /chatToken and GET /chatToken
  • API endpoints to POST /auth/jwt, POST /chat to allow users with sharable link to talk to bot though chat proxy endpoint
  • change permissions and /roles endpoint return format
  • API endpoints to PUT /roles/<role>, DELETE /roles/<role> and POST /roles
  • API endpoints to fetch and update the domain at GET/PUT /domain
  • API endpoint to fetch domain warnings at GET /domainWarnings
  • API endpoint to fetch domain actions at GET /domainActions

Fixed

  • the ansible playbook now creates a valid credentials.yml file for Rasa Core

Changed

  • moved NLG and template API from /responses to /templates
  • use decorator for json schema validations