Skip to content

Latest commit

 

History

History
1797 lines (1274 loc) · 63.3 KB

File metadata and controls

1797 lines (1274 loc) · 63.3 KB

Beer Garden Changelog

3.30.0

TBD

  • Updated rpm script to supply cli values to config migration. Beer-garden migrate will apply cli values prior to yapconf migrate_config_file.
  • Fixed forwarding operations to downstream causing blocking to the router. Mostly seen during File Forwarding.
  • Optimized how Request Topic Publisher matches systems
  • Fixed bug where Topic Publish did not match on Gardens and Namespaces
  • Fixed Request view bug where REQUEST_TOPIC_PUBLISH was causing blank line in children list
  • Updated Topics generation and removal to Mongo Model instead of through Events
  • Optimized Topic pruning and generation
  • Expanded topics API to support manual execution of Topic Generation
  • Standardized Topic Names for Generated topics to start with the prefix of garden name New format: <garden_name>..<system_name>.<system_version>.<instance_name>.
  • Optimized the query to clean TEMP child requests
  • Fixed bug where upon completion of Parent Request, running TEMP child requests got deleted prematurely
  • Fixed issue where local Garden version was not persisted to database, or setup upstream
  • Fixed multi-hop check for legacy Gardens in Router
  • Removed Garden load file from setup_routing because it was unnessary
  • Fixed bug where NOT_CONFIGURED status for Receiving connection was not filtered out
  • Added logging for jobs created or updated from import
  • Fixed bugs with ELK APM integration and improved labeling
  • Expanded APM Metrics to collect Event Processing Queue Depths
  • Updated internal events to utilize deque to improve performance
  • Updated internal events to allow for unique and sorting events based on timestamps, only latest instance of the transaction event is handled within the event handlers
  • Merge Request metadata if uniqued in event handler
  • Optimizing how Garden configurations are loaded
  • Reduced default Status History from 50 to 10
  • Updated logging for Prune Outstanding Requests
  • Fixed bug where Garden historical status info is maintained after rescan
  • Fixed how Garden files are loaded, added HTTP Receiving defaults to prevent missed events prior to GARDEN_SYNC
  • Fixed Alerts on Command View page that were not showing up.
  • On Make Request if request takes longer than 5 seconds, push alert to UI
  • Merge event metadata on Request Update
  • Updated Events Websocket to support Async calls
  • Fixed bug where Publish Topic did not evalute downstream garden systems
  • Optimized how Gardens are stored in the Router table
  • Cleaned up Garden Event Handler logic
  • Optimized how publish request handles topic matching
  • Downstream Garden Sync events execute at startup after Entry Points start
  • Added filter to check if value exists for field in 3.29 db model migration
  • Fixed logic when instance_name is included on Request object with the system version of latest that the instance name is included in the filter criteria
  • Updated orphan pruner to delete orphaned files
  • Updated Topic Sync logging to track update/delete counts
  • Fixed bug where pour again invalid property caused broken UI
  • Fixed metric collection on queue depth of HTTP Parent Updater
  • Updated pruner configuration to consolidate options under db.prune
  • Fixed bug where Paused Jobs being imported were Running in the background
  • Fixed bug where Request pruning did not remove GridFS stored objects.
  • Fix prune orphaned GridFS objects.
  • Fixed extra database calls for Garden deletes
  • Updated 3.24 migration script to skip children config creation if only one garden
  • Reduced mongodb calls required to update instance heartbeat
  • Updated logic for forwarding Requests to remove DB call
  • Updated pour it again requests to respect command type override

3.29.1

12/31/2024

  • Added capture streams config option for local plugins.
  • Prepopulate file name on pour again file uploads by adding file name from request parameter details.
  • Added support for command display name as option to override default name.
  • Updated Pypi release package name from beer-garden to beer_garden to comply with PEP 625.
  • Migrated from 408 to 504 HTTP error code for client defined wait time exceed. Required to prevent client from reattempting to submit the API request.
  • Updated Authorization Filtering to return Downstream configuration info for only Garden Admins
  • Updated Bytes File Uploads to generate MD5 Checksum values and store file name

3.29.0

11/25/2024

  • Added support for pruning completed orphaned child requests (db.ttl.orphan)
  • Added optimization for TTL to only pull back IDs (instead of entire model) when deleting Requests
  • Added new beer.conf support for shutdown functions. These functions will be executed at the start of the shutdown process. Function must be present on the client class object.
  • Added new beer.conf support for startup functions. These functions will be executed after Plugin().run() has completed startup processes. Function must be present on the client class object.
  • Added python version to about page
  • Added support for filtering SystemsList API on filter_running to return only running versions of each system. Can be used in conjunction with 'filter_latest' to return only the latest running version of each system.
  • Added ldap login handler and configuration options to support ldap password-based login and pull user roles.
  • Added Rocky 9 RPM Support
  • Added topic pruning for system removed events

3.28.2

10/11/2024

  • Fixed Child Garden sync for older Gardens that do not provide Namespace on Systems

3.28.1

10/11/2024

  • Added database cleanup from Beer-Garden 3.16 User Models. Collections will be pruned and require to be rebuilt to match the new user model approach
  • Added database cleanup from Beer-Garden 3.23 Garden Models. Models will be mapped to their YAML file in the children directory, then the collection is pruned

Python 3.13 Support

10/10/2024

  • Verified that Beer Garden can run on Python 3.13.0
  • Future builds will include a Python 3.13.0 RPM build feature

3.28.0

10/9/2024

  • Updated create request page warning to identify required systems not in running status.
  • Added support to prune legacy request with no command type
  • Added support for group/groups in beer.conf and group environment variable
  • Added max_concurrent support for config.yml under plugin.local.max_concurrent
  • Added backwards compatibility for Garden Syncs for 3.16 or older releases
  • Added max concurrent support for beer.conf under MAX_CONCURRENT
  • Added feature to cancel an ongoing request or delete a completed request
  • Fixed API swagger docs for Job execution
  • Fixed issue where using local systems with a Namespace not the Garden name would not be treated as a local Request for internal features
  • Fixed issue where Adding/Removing subscribers failed if topic didn't exist
  • Added config option to import scheduled jobs file at startup
  • Added support to configure alias_user_mappings in the user configuration file
  • Added config option for child garden configuration file to share all users with child garden instead of filtering
  • Added System Admin feature to Cancel Non-Completed Requests in bulk, instead of Deleting

3.27.2

9/12/2024

  • Updated form builder version to add dropdown on create request page to support latest as option
  • Added logging messages for Garden rescan operation
  • Added router checking for configuration files in children folder if child garden is not loaded yet
  • Added Error Event Handler to process
  • Added logging statement if children directory does not exist
  • Added Garden Version tracking and display on Garden Admin page
  • Updated Error Event message and all error events stay local/not published to UI
  • Updated Logging Levels for Collection Checks
  • Fixed issue where multiple Published requests would be spawned if Publisher utilized propagate=True if matched on child garden topic
  • Fixed issue where child requests were not getting cancelled when the parent is cancelled
  • Fixed issue where Topic delete was called with args instead of kwargs
  • Updated each handle_event function to be processed in independent threads
  • Updating logging level for Replication notifications
  • Beer Garden will only emit locally generated events to any listening or configured APIs.
  • Fixed counters displayed on Delete Request pop up to match exact values instead of starts with
  • Fixed bug where Garden Sync response doesn't null check before evaluating API response
  • Fixed issue where if user sync with child garden fails at startup will stop Beer Garden
  • Fixed issue where parent garden would reprocess Publish Topic regardless of _propagate flag
  • Fixed issue where Requester was added to requests when auth was disabled
  • Fixed issue where System updates cancelled request with completed fails Request wait event checks
  • Fixed issue where BASE64 parameters were not forwarded to Child garden
  • Fixed issue where if Garden Receiving Connections was nulled, it would not create new connections
  • Fixed issue where orphaned requests were not pruned properly
  • Removed generation of Topic Events due to UI not supporting it and flooding of events to Upstream Gardens
  • Fixed issue handling system/instance update errors from children

3.27.1

8/21/2024

  • Added REQUIRES list and REQUIRES_TIMEOUT in beer.conf. Plugins will wait for system dependencies before starting.
  • Fixed APM Service name to clean string based with only alphanumeric characters, spaces, underscores, and dashes
  • Fixed issue where Dead runners did not appear on the Unassociated Runners list
  • Start support for Python 3.12.2+: cpython ticket has been resolved
  • Expanded index checks at the start of Beer Garden to include User, Role, User Tokens, Topics, and Replication
  • Fixed issue where invalid requests threw errors in Request handler for REQUEST_UPDATE

3.26.5

8/20/2024

  • Backdating Patch: Fixed issue where Dead runners did not appear on the Unassociated Runners list (Not included in 3.27.0 Release)

3.27.0

8/13/2024

  • Added file trigger jobs to scheduler to monitor directory for file changes. If a watched file change event occurs, it will fire the specified request. File trigger can be customized using regex, recursively monitoring sub-directories, or by watching one or more file change events (i.e. create, modify, move, or delete).
  • Request auto refresh configurable through ui.auto_refresh config option.
  • Added additional matching for topic subscriptions to include full string, empty, None, and regular expressions.
  • Fixed Request system version to return actual system version instead of parsed version when using latest.
  • Expanded the Topics API to support api/v1/topics/name/ for passing topic.name as a variable instead of topic.id
  • Add counter support for Topics/Subscribers that are triggered to generate requests
  • New feature to track the last N heartbeats timestamps for Instances and Gardens. The range to history stored is controlled by configurations garden.status_history and plugin.status_history
  • Added Replication Awareness to ensure only one Replicated instance can process the scheduled jobs.
  • Adds Model Checks for DB collections to ensure classes can properly load between upgrades.
  • If Beer Garden catches an exception during shutdown, it will os.exit the application after all shutdown procedures are completed.
  • Added new metrics collection support for publishing data to Elastic APM for APIs, Router, and Event Handling

Overhauled User Authentication Logic

  • Roles allow filtering on combinations of Garden/Namespace/System Name/System Version/Instance/Command
  • User Alias mapping will update the Requester on Child Garden requests based on their alias. Maps requests spawned from Child Garden to the local User account if Alias mapping matches.
  • When User has Alias accounts, Roles that can be applied to that Child Garden will be forwarded as UpstreamRoles. This is to ensure admin's at the Child Garden can see the permissions utilized to execute Request
  • Updated Permission accesses on UI with new Role schema
  • Updated API Permission access with new Role schema
  • API filters returned data based on User Roles
  • Access Token have custom Access and Refresh timeouts based on Users Max Permission that are controlled in the config
  • Users and Roles can be loaded through configuration files, and are protected models
  • New UI pages for User and Role management
  • Upgraded Brewtils version to 3.27.0

3.26.4

7/12/2024

  • Fixed bug where job updates did not maintian counters
  • Fixed bug where bulk job import did not support updates

3.26.3

7/10/2024

  • Fixed bug that prevented Autobrew Kwargs from being properly passed to the class object
  • Supporting Subscriber Types for Generated/Annotated/Dynamic, all stored in Topics Collection for quick reference
  • Optimized internal event processing to support API only events
  • Updated About page to support new tab for links
  • Command publishing blocklist UI and REST API removed
  • Fixed Command Index UI bug where breadcrumbs were not shown if Namespace and System Name matched

3.26.2

6/6/2024

  • Fixed bug where Request View would fail loading Dynamic Choices for TEMP commands
  • Fixed bug where configured receiving connections for child Gardens duplicated at restart
  • Defaulted all Dynamically loaded commands from the Request View to TEMP

3.26.1

5/24/2024

  • Fixed icon padding
  • Updated Garden Admin page to only update page data based on Local Garden Update Events and notify when a child sync is being processed
  • Fixed logging statement
  • Fixed icon order of Child Requests on Request View page
  • Updated Publish/Subscribe Request to only support Systems that are in the RUNNING status.
  • Updated Topics API to support upserting topics
  • Changed various log levels
  • Fixed monitoring of Plugin Runners
  • Added notification icons to Instances on System Admin page to reflect current status of runner
  • Updated Child Request handling to update missing Command Types

3.26.0

5/16/2024

  • Fixed large output handling when updating parent requests
  • Upgraded Font-Awesome to Free version of 6.5.x
  • Refactored Mongo pruner to use APScheduler
  • Autobrew supports args and kwargs provided to client class
  • Updated order of Hidden and Command Type icons on Command Index and Request View pages
  • Migrates Latest system version from SystemClient to Request API supported
  • Adds support for filtering SystemsList API on filter_latest to return only latest version of each system
  • Updated Garden Syncs to include sync of targeted garden children
  • Updated Garden Admin page to not show duplicative info alerts
  • Updated Garden Update/Delete/Create events to trigger Publish Garden Sync
  • Fixed bug in routing logic when syncing Garden 2+ hops away
  • Fixed bug where downstream garden deletes on 1-hop did not reflect locally
  • Fixed bug where Garden Events caused duplicate Gardens to appear if event came from 2+ hops away

3.25.1

5/3/2024

  • Added auto refresh checkbox to requests page
  • Added support for cross-server parent/child requests
  • Reuse existing rabbit admin queue by purging messages instead of creating new queue
  • Fixed bug where Auto brew plugins did not parse NAME/VERSION properly from the beer.conf
  • Fixed bug where unresponsive Garden API was referencing a non existing configuration for default. New default is -1.
  • Fixed bug where Garden unresponsive metadata was cleared during child garden shutdown
  • Fixed bug where tailing plugin logs fails if the logs are not updating
  • Fixed bug where locally connected plugin commands ran as TEMP did not auto delete after completion
  • Fixed bug where commands page did not load properly if opened up directly
  • Fixed bug where Pour It Again on Request View page was generated before Systems were loaded from API
  • Fixed bug where Autobrew plugins passed PLUGIN_ARGS to Client class
  • Fixed bug where outstanding Requests will prevent Plugin from shutting down.

3.25.0

4/11/2024

  • Added Topics API and classes to support dynamic topic subscribers
  • Now show alert on Garden Admin page when a Sync event is seen
  • Garden Sync events will update heartbeat status of Receiving Garden APIs
  • Utilized the TTL for In_Progress requests to set Expiration windows for Requests on PIKA, to handle backups of requests that Beer Garden has already cancelled.
  • Optimized UI Rest calls to load only Local Garden with Children
  • Optimized Child Request Event handeling
  • Updated how STOMP URL preview is formatted on Garden Admin page
  • Configuration update: Prometheus metrics (metrics.prometheus.enabled) is now disabled by default
  • Configuration update: Default directory for child configs (children.directory) is now ./children
  • Configuration update: Default for ui.cors_enabled is now True to match example configuration and default behavior of UI docker images
  • Fixed order of Gardens and Connections on Garden Admin page
  • Fixed bug where STOMP connections for children did not start with Beer Garden startup
  • Fixed bug where Child Garden Publishers appeared as Upstream on Garden Admin Page
  • Fixed bug where outbound filtering removing Username/Password from STOMP connections for internal events
  • Fixed bug where Disabled STOMP Receiving connection could be re-enabled if it is shared and unresponsive
  • Fixed bug where child garden plugins are treated like local plugins on the System Admin page
  • Fixed bug where pruner dies if it is unable to update cancelled request
  • Fixed bug where child requests were stored in database without parent request
  • Fixed bug where removing a parent garden failed to remove both parent and child

3.24.4

3/11/2024

  • Fixed bug where child STOMP Recieving connections where not being saved or configured to listen

3.24.3

3/8/2024

  • Fixed bug where Stomp Headers were not being parsed into Dictionaries

3.24.2

2/28/24

  • Fixed bug where setting the heartbeat for recieving garden connections would override changes from Instance Updates in seperate threads
  • Fixed bug where heartbeat did not update the status to RECEVING for the receiving connection type
  • Backup current config on rpm update when config changes are present
  • Fixed bug where Admin Garden page did not update page based on events until page was interacted with
  • Fixed bug where Plugins assocaited with a runner would appear after a refresh
  • Fixed bug where child unresponsive runners appeared in the list of unresponsive runners
  • Upgraded Brewtils version to 3.24.1

3.24.1

2/21/2024

  • Fixed pip config trusted-host on rpm build
  • Fixed bug where the Garden Connection Stop button did not request the connection to be disabled if the current status is a valid running status.
  • Cleaned up logging statements left from debugging
  • Fixed bug where the modal for reading Instance Logs was not appearing
  • Updated System Instance "Get Logs" to support live polling
  • Expanded Instance Logs requests to allow for routing to child gardens

3.24.0

2/13/2024

  • Updated icons on System Admin page
  • Fixed bug where blocking=true on Request API returned IN PROGRESS status for requests sourced from downstream gardens. Delay added to allow Beer Garden to process the event.
  • Request API utilizes Futures for blocking=true, returning back the completed request from the Event, instead of querying the database
  • Fixed bug where pruned In-Progress Requests that were scheduled never completed in scheduler, so max concurrency would be reached.
  • Expanded counters for Scheduled Jobs to include Requests skipped and canceled.

BREAKING CHANGES

  • The Garden table needs to be dropped from the database to support new model changes
    mongo
    use beer_garden
    db.garden.drop()
    
  • Garden records store child Gardens
  • Child Gardens are now configured through a config file. Default location is ./children
  • Garden Admin page overhauled
  • Scheduled checks to ensure that all child gardens are publishing
  • Child Gardens receiving/publishing connections can be started and stopped from the Admin Garden page. This only starts/stops the accepting or publishing from the Parent, not disable a remote API.
  • UI now iterates over local Garden children to determine list of Systems
  • If Garden is disabled or not configured, it's and it's child garden Systems will not be visible on the UI
  • If a child garden is not reporting a Recieving connection, but can be tasked, upgrade the child. Older 3.X releases do not report sourcing and this is utilized to determine the Receiving connections.

3.23.1

12/29/2023

  • Fixed issue where replicated messages were not fanned out to all replicated Beer Gardens
  • Fixed bug where restart instance was not checking if process is currently running. Now it properly kills the running instance during restart.
  • Split apart functionality of Start and Restart instance into two API operations.

3.23.0

12/27/2023

  • Added missing Request Status filter for "Invalid"
  • Adding default icon on System Admin page for undefined or null system.icon_name
  • Fixed bug where Publish/Subscribe events would carry over request properties across the various topics mapped
  • New API to support PUT Requests, this API will only spawn REQUEST_UPDATE events
  • Upgraded Brewtils version to 3.23.0

3.22.0

12/13/2023

  • Replication of all events, when configured, except for Garden Sync events. Garden sync events spawn off additional events that will be replicated properly.
  • Add support for commands to have tags, used for filtering on the commands index page
  • Publish Instance Status changed to Instance default topic {Namespace}.{System}.{Version}.{Instance}
  • Upgraded Brewtils version to 3.22.0

3.21.0

12/05/2023

  • When Beer-Garden is replicated, publishes required events to RabbitMQ keep the environments in sync.
  • On Request Index page, the prefix NOT is supported to invert string query or search for empty strings.
  • Adding "?showNav=false" to the end of any UI page will remove the navigation bar
  • Upgrading unstable docker images to install Brewtils develop branch

3.20.0

11/16/2023

  • Adds the ability to delete Requests by Plugin on the System Admin page within the plugin sub-menu. These are local deletes only
  • Adds Is Alive check for Entry Points, if sub process is killed externally then it is restarted
  • Add error handling if Subscriber Request has exception at creation
  • Updates request validation to support allow_any_kwargs on commands
  • Upgraded Brewtils version to 3.21.0

3.19.1

11/9/2023

  • Rolls back to Python 3.11 until cpython ticket is resolved, expected 3.12.1
  • Expands docker build to include various versions of Python
  • Fixed bug in Topics to require full matching for subscriptions, not substrings
  • Expanded pub/sub testing
  • Upgraded Brewtils version to 3.20.2

3.19.0

11/7/2023

  • Adds support for Published Event Requests
  • Adds support for Requests to spawn Publish Request
  • Upgraded Brewtils version to 3.20.1
  • Updated testing baseline to support Python 3.12, and requirements build off 3.10
  • All docker images support Python 3.12
  • RPM build is against Python 3.12
  • Updated Command Type Icons
  • Updated tooltips on Command Types
  • Added icon for Subscription based Command/Requests
  • Updated Request View page to show Namespace

3.18.1

10/20/2023

  • Fixed auto brew conf to support NAME/VERSION parameters
  • Fixed auto brew to support PLUGIN_ARGS
  • Fixed missing default home
  • Upgraded Brewtils version to 3.19.0

3.18.0

10/13/23

  • Can set any page as the home page
  • Add command type TEMP that is pruned after parent request is completed or when it completes if it is the top level request
  • Add Auto Decorator feature for classes without annoations

3.17.2

10/10/23

  • Add Request Pruner for command type Admin
  • Add batching for large pruner
  • Add multithreading for pruner

3.17.1

7/20/23

Other Changes

  • Update RPM build process to use Node 18

3.17.0

7/19/23

Other Changes

  • Updated preview version of the new UI with better support for commands with dynamic parameters
  • Bumped dependency versions

3.16.2

2/1/23

Other Changes

  • Preview version of the new UI now has intended feature parity with the existing UI.

3.16.1

1/10/23

Other Changes

  • Miscellaneous updates to the preview version of the new the UI

3.16.0

11/15/22

Added Features

  • A preview of the new UI is now bundled into the official release RPM. This new UI built on a more modern framework, but is largely intended to look and feel similar to the existing UI. When using the configuration provided in the RPM, the preview UI can be reached by appending /preview to the base beergarden URL in your browser.

3.15.0

8/31/22

Added Features

  • A new configuration option, db.ttl.in_progress, is now available for timing out requests. Any request still in the IN_PROGRESS or CREATED status after the configured timeout (set in minutes) will be marked as CANCELLED, making it eligible for pruning.

Bug Fixes

  • Viewing instance logs for systems on a local garden now works correctly.
  • The Clear All Queues option on the system admin page now works correctly. NOTE: This is supported for the local garden only.
  • Fixed an issue where clearing the queue of an instance with non-word characters in the instance name would raise an error. Queues can now be cleared properly, regardless of the instance name.

Other Changes

  • Reduced redundancy in the API calls made by the UI.
  • Removed lingering internal references to beer garden v2 naming conventions.

3.14.0

6/28/22

Added Features

  • The request output page now provides an option to render output that exceeds the display size threshold. Note that the ability to successfully render such output depends on both the output size and the client's available resources. (Issue #1338)
  • A Command Publishing Blocklist is now available. Commands on remote gardens that are added to this list will not have their results published back up to the parent. (Issue #1310)
  • When launching a garden for the first time, the default user for running plugins is now distinct from the default admin user. (Issue #1309)
  • Improved display of multiline comments on requests. (Issue #242)
  • Improved feedback when performing a garden sync. (Issue #1299)
  • Roles are now synced to downstream gardens when performing a user sync. (Issue #1302)

Bug Fixes

  • The namespaces and systems are now correctly displayed for the local garden in both the API response and the garden admin view. (Issue #1300)
  • Sensitive message queue connection information is no longer returned with the systems API endpoint response. (Issue #1301)

Other Changes

  • The superuser role is now internally managed and no longer needs to be specifically listed in the role definition file. (Issue #1306)

3.13.0

4/12/22

NOTE: This release fixes an issue where client certificates would not be sent to rabbitmq, even if beer garden was configured to do so. Connecting to rabbitmq with certificates currently requires that the provided certificate be a key and certificate bundle. Please be aware that in certain configurations where the certificate is already set and is not a bundle, your connection to rabbitmq may fail under this release. To fix this, switch your certificate to be a bundle that also includes the key.

Bug Fixes

  • Client certificates are now properly used when connecting to rabbitmq (Issue #1288).
  • Column filtering headers on the Request page are now properly aligned (Issue #1286)
  • Login form now provides feedback when entering invalid credentials (Issue #1280)

Other Changes

  • The bgio/beer-garden:3-debian image and related images have been modified to more closely align with the alpine image. Usage of the debian image should now be the same as that of the alpine image.

3.12.0

3/21/22

Added Features

  • A "Change Password" option has been added to the ☰ in the top right of the UI. (Issue #1262)
  • User management has been added to the UI for creating users and managing their role assignments. This is available via a new "Users" option under the admin menu. (Issue #1262)
  • Requests now list the user that initiated the request. (Issue #1263)
  • Users are now granted implicit access to any requests that they create. (Issue #1264)
  • It is now possible to sync users and their role assignments between gardens. (Issue #1265)
  • A default admin user and superuser role will now be created during the first startup of a new garden. (Issue #1274)

Bug Fixes

  • Overly noisy "ERROR" event messages have been eliminated from the logs. These had been especially prevalent in setups with remote gardens that were more than a single hop away (i.e. "grandchildren"). (Issue #1271)

Other Changes

  • A security section has been added to the documentation on beer-garden.io, detailing how to use many of the User management related features in this release.

3.11.0

2/9/22

Added Features

  • Updates in status in the user interface (via WebSockets) are now filtered according to a user's authorization, the same as HTTP API requests. (Issue #1243)
  • The user interface now preemptively refreshes user access tokens so that a user will not be automatically logged out after a short period of inactivity. (Issue #1247)
  • User interface elements are now hidden or displayed according to a user's authorization to access their functionality. (Issue #1179 & Issue #1250)
  • Users can now import and export Garden connection configurations via the user interface. (Issue #1192 & Issue #1141)

Bug Fixes

  • The Job error count now correctly also reflects those Jobs that fail due to an exception, (Issue #1225)
  • Job scheduler request handling now properly keeps track of which requests have finished. (Issue #1214)

Other Changes

  • Added basic documentation for authentication and authorization features added to Beer-garden in previous releases. (Issue #1241)

3.10.0

1/4/22

Added Features

  • File parameters on requests are now cleaned up by the pruner per the db.ttl.file setting. (Issue #1215)
  • File parameters are now cleaned up when the corresponding request is removed. (Issue #1215)
  • Reduce log noise generated from ERROR events. (Issue #1213)

Bug Fixes

  • Request parameter and output data stored in GridFS no longer gets duplicated throughout the life of a request. (Issue #1216)
  • Request status_updated_at field on requests from child gardens is now properly preserved. (Issue #1143)
  • The DELETE method on the /api/v1/gardens endpoint has been restored. (Issue #1230)

Other Changes

  • Added backend support for a command publishing blocklist that prevents requests from listed commands from being published up to a parent garden. User access to this feature will follow in a future release. (Issue #877)

3.9.0

12/8/21

Added Features

  • The status_updated_at timestamp is now displayed on the Request view page. (Issue #1142)
  • The /api/v1/job/<id>/execute endpoint now takes an optional reset_interval parameter which, when set to true, will update the next run time of an interval trigger job to be based on the current adhoc execution, rather than keeping the next run time that was based on the previously scheduled execution. (Issue #1173)
  • Command parameters of type Bytes are now rendered as a file upload dialog in the tasking interface. Files provided this way will be properly sent down to remote gardens for tasking, unlike the Base64 paramter type. For this reason, it is recommended that Bytes be used for parameters that intend to take a file as input. (Issue #1165)

Bug Fixes

  • Child requests are once again properly returned via the /api/v1/request endpoint and properly displayed on the request page in the UI (Issue #1218)

Other Changes

  • Added the following for use in future authorization related features:
    • A trusted header login handler for authenticating users based on request headers that indicate the username and a list of group memberships. (Issue #1198)
    • Improved handling of refresh tokens in the UI (Issue #1187)
    • Add authorization checks to the /api/v1/forward endpoint. (Issue #1207)

3.8.1

12/7/21

Bug Fixes

  • Fixed an issue that prevented tasking of commands without parameters on remote gardens (Issue #1209)

3.8.0

11/18/21

Added Features

  • Requests now have a status_updated_at field representing the time of the last status change. (Issue #1132)
  • Added the ability to import and export jobs via the Scheduler page on the UI (Issue #1034)
  • Added the ability to do ad-hoc runs of scheduled jobs via both the API and UI (Issues #1062, #1066)

Bug Fixes

  • Properly validate input on the job import API (/api/v1/import/job) (Issue #1178)
  • Dependency versions for development and deployment are now consistent (Issue #1182)

Other Changes

  • Added the following for use in future authorization related features:
    • Refresh token support (Issue #1171)
    • The ability to enable permissions based authorization checks to the API endpoints (Issues #1154, #1170)
    • Various changes to the UI to support login / logout and refresh token handling (Issue #1147)
    • Added a concept of "global" permissions (Issue #1168)

3.7.1

10/15/21

Added Features

  • Login endpoint added allowing user/password entry to receive a JWT auth token (Issue #1134)
  • The get_current_user method in the BaseHandler class now gets the User object based on the JWT auth token (Issue #1144)
  • Local and remote plugin logging config files now separated (Issue #817)
  • Helper functions created to determine a user's permissions (Issue #1122)

Bug Fixes

  • Hidden files in a plugin directory no longer show an error in the logs (Issue #1097)
  • File parameters are now handled correctly and a file posted to a child garden from the parent is correctly encoded and compressed for transport (Issue #1055)
  • Dead runners on a child garden now correctly show their status on the parent's UI (Issue #809)
  • Stale systems are now removed when syncing child gardens (Issue #1101)
  • Large requests now better determined whether they need to be stored in GridFS (Issue #1038)

Other Changes

  • Project is now able to accept pull requests from those who are working from a fork
  • Contribution guide updated

3.6.0

9/22/21

Added Features

  • Added new api endpoints for importing and exporting jobs (Issue #1067)

Bug Fixes

  • It is no longer possible to create multiple gardens sharing the same name (Issue #727)
  • GET and DELETE against the garden api endpoint now return the correct response codes (Issue #1110)
  • Fixed an issue where internal event processors were incorrectly modifying events (Issue #978)
  • Garden connection configuration is now properly displayed in the UI when default values are being used (Issue #1104)
  • Connection reliability fixes for the stomp entrypoint (Issue #1102)

Other Changes

  • Added the following for use in future authorization related features:
    • Authorization related database models (Issue #1089)
    • The ability to load role definitions from a configuration file (Issue #1091)
  • Updated library dependency versions

3.5.0

8/18/21

Added Features

  • Command-based choices request will now time out after 30 seconds
  • Theme selection now persisted in browser storage
  • Added config option for changing commands of non-dev systems

Bug Fixes

  • Command-based choices now wait for an instance to be selected
  • Read-log requests now fully formed
  • Fixed issue where gardens with certain characters in their name could not be accessed
  • Republishing a modified event when child request changes
  • Fixed operations being routed to incorrect gardens in certain cases
  • Command-based choices now show an indication when request fails

Other Changes

  • Setting timezone to UTC in docker image

3.4.1

8/2/21

Bug Fixes

  • Jobs removed during an execution no longer respawn upon completion (Issue #1081/ PR #1084)

3.4.0

6/24/21

Added Features

  • Scheduled jobs now have a timeout field (Issue #1046 / PR #1049)
  • Forwarding REST calls now support blocking and timeout parameters (Issue #895 / PR #325)
  • Bytes-type parameters are now supported (Issue #991 / PR #996)
  • Systems can now have UI templates (Issue #997 / PR #1005)
  • Commands now have a metadata field (Issue #358 / PR #998)

Bug Fixes

  • Scheduled job now displays next run time correctly (Issue #972 / PR #1059)
  • Handling request cancellation events from child gardens (Issue #932 / PR #1056)
  • Better error handling when HTTP connection from child to parent garden fails (Issue #1035 / PR #1037)
  • Changed standard nginx config to allow for larger request output (Issue #1027 / PR #1032)
  • Large child output no longer prevents parent output from being displayed (Issue #1026 / PR #1030)
  • Better error message when creating a Request with an incorrect namespace (Issue #1017 / PR #1024)
  • System attributes (like description) can now be cleared (Issue #1002 / PR #1003)
  • Fixed issue with plugin log reads immediately timing out (Issue #999 / PR #1000)

Other Changes

  • Moved status icon on request view page (Issue #1041 / PR #1042)

3.3.0

4/23/21

Added Features

  • Can now modify scheduled jobs (Issue #294 / PR #988)

Bug Fixes

  • Fixed file parameters regression (Issue #992 / PR #995)
  • Better handling for out-of-order request updates from child gardens (Issue #982 / PR #993)

3.2.3

4/16/21

Bug Fixes

  • Fixed regression where headers were not set when sending STOMP messages (Issue #969 / PR #970)
  • System creation events should now be handled by all entry points (Issue #949 / PR #971)
  • Stomp entry point no longer mangles event objects (Issue #978 / PR #979)
  • Child request view starts as collapsed on request view page (Issue #984 / PR #985)

Other Changes

  • Changed STOMP configuration items (PR #968)

3.2.2

4/12/21

Bug Fixes

  • Fixed error where certain database models would hold onto references (Issue #959 / PR #960)
  • Fixed various issues with TLS stomp connections (Issue #946 / PR #947)
  • Garden sync operations now work more consistently (Issue #941 / PR #961)

Other Changes

  • Change to how child garden connection parameters are stored (Issue #912 / PR #962)

3.2.1

4/9/21

Bug Fixes

  • Scheduled jobs now work without a namespace (Issue #952 / PR #954)

Other Changes

  • UI image no longer uses IPv6 by default (Issue #950 / PR #951)

3.2.0

4/1/21

Bug Fixes

  • Better error message when request choices validation times out (Issue #938 / PR #945)
  • Fixes to STOMP connection behavior (Issue #914 / PR #917, #935)
  • No longer possible to define a Garden connection type as Local (Issue #906 / PR #909)
  • Fixed case where incorrect STOMP config could prevent startup (Issue #907 / PR #910)
  • Errors when changing garden connection info will be displayed (Issue #903 / PR #908)
  • Request creation no longer generating extraneous error logs (Issue #902 / PR #911)
  • Creating request for a child garden no longer shows UI error (Issue #893 / PR #894)
  • Preventing incorrect namespace value from breaking notifications (Issue #890 / PR #892)
  • Fixed problems with HTTP parent/child connection parameters (Issue #878, #879, #897 / PR #884, #899, #901)
  • Garden names now support Unicode (Issue #875 / PR #885)
  • Improved error logging for HTTP parent/child communication errors (Issue #873 / PR #889)

Added Features

  • Added descriptions to system admin page (Issue #840 / PR #843)

Other Changes

  • Event notifications are always wrapped in Operations (Issue #918 / PR #920)

3.1.1

2/5/21

Bug Fixes

  • Database migration script no longer requires has_parent field (Issue #868 / PR #869)

3.1.0

2/5/21

Bug Fixes

  • Improved the position of the popover shown for a parent request (Issue #862 / PR #865)
  • Checkbox label on commands page now works correctly (Issue #860 / PR #866)
  • Fixing incorrect Request collection name (Issue #833 / PR #834)

Added Features

  • Requests based on a hidden command will now be marked as hidden themselves (Issue #414 / PR #849)

Other Changes

  • Request index page checkbox labels have been tweaked (Issue #861 / PR #864)
  • Beer-garden systemd process now runs with umask 0002 (Issue #816 / PR #844)

3.0.5

1/11/21

Bug Fixes

  • System Queue Management Not Working on Admin Page(Issue #823 / PR #824)
  • Scheduler Not Rendering Trigger Form (Issue #819 / PR #821)
  • Local plugin runner not removed during system purge (Issue #810 / PR #822)
  • Unassociated Runner not displayed when there are no systems (Issue #805 / PR #808)
  • Now able to delete System when Child Garden is down (Issue #749 / PR #798)
  • Regigersty empty command list on existing System resulted in no changes to commands list (Issue #806 / PR #807)
  • Fixed issue where Garden updates failed if no Configuration was provided (PR #801)
  • Moved metadata field into STOMP shutdown event properly (PR #802)

Added Features

  • Run systemd service as beer-garden user (Issue #816 / PR #818)
  • Warn when beer.conf results in no instances (Issue #796 / PR #804)
  • Entry Points now emit Brewtils Event when started (PR #800)
  • Adding Checkers for Code Complexity and Security to PR Actions (PR #812)
  • Self-closing non-void tags are not great in HTML5 (PR #814)
  • Adding log message when logging config file is changed (PR #826)

3.0.4

12/22/20

Bug Fixes

  • Fixed issue with entry point status event publishing

3.0.3

12/22/20

Added Features

  • Parent and child gardens can now use Stomp-based communication (#761)
  • Can now create a child garden using the UI (#726)

Bug Fixes

  • Fixed regression that made it impossible to removed remote plugins (#794)
  • Better error handling during system removal (#749, #771)

3.0.2

12/15/20

Added Features

  • Unassociated runners are now shown on the System Admin page (#708)
  • Can now pass files as parameters (#368)

Bug Fixes

  • Shutdown procedure is more robust when running under systemd (#770)
  • Corrected tooltip for System Admin page start button (#768)
  • Stopped certain events from generating UI console errors (#764)
  • Better error information when using Pour it Again on a removed command (#624)

3.0.1

11/12/20

Bug Fixes

  • Fix issue preventing clean shutdown on Python 3.7 (#738)

3.0.0

11/10/20

Note: This is a major release. Please check out the site for more in-depth documentation.

Added Features

  • Scheduler now supports triggering from file events (#647)
  • jquery and lodash objects are now available when creating custom templates (#589)
  • Table page length selections in UI are persisted in browser storage (#560)
  • Local plugins can now use an alternate python interpreter (#492)
  • Request output with a size greater than 16MB is now supported (#407)
  • Button added to Request View page for downloading output (#361)
  • Additional REST endpoint for Request output (#361)
  • Systems can now be grouped by namespace (#284)
  • Can now mark commands as hidden (#269)
  • The UI Output and Parameters displays can now be expanded (#170)
  • Separate gardens can now communicate via REST API
  • Actions can be initiated with STOMP messages in addition to the REST API
  • Plugin logs can now be retrieved and displayed on the UI System Admin page
  • All plugins automatically request a logging configuration from Beer-garden

Other Changes

  • UI Queue Admin functionality has been moved into System Admin page (#533)
  • Drop official support for CentOS 6 (#225)
  • Logging config files are now yaml by default (#89)
  • Brew-view & Bartender have been merged into a single Beer-garden application (#87)
  • UI has been pulled out into a separate application
  • Default max_instances value for plugins is -1 (no maximum)
  • User interface has been streamlined
  • Python version bundled with rpm is now 3.7 instead of 3.6
  • Commands no longer have an ID field

Removed

  • Publishing events to RabbitMQ and Mongo has been removed (#681)
  • Authentication / Authorization functionality: Users, Roles, Login, etc.

2.4.18

10/27/20 Brew-view 2.4.19, Bartender 2.4.8, BG-utils 2.4.10

Added Features

  • Can now inject specific host environment variables into local plugin processes (#686)

2.4.17

10/13/20 Brew-view 2.4.19, Bartender 2.4.7, BG-utils 2.4.10

Bug Fixes

  • Fixed command invocation error when request has no parameters (#351)

2.4.16

9/23/20 Brew-view 2.4.19, Bartender 2.4.7, BG-utils 2.4.10

Bug Fixes

  • Removed mongo model caching from Pruner. Releasing memory once the delete is completed (#604)

2.4.15

2/20/20 Brew-view 2.4.19, Bartender 2.4.6, BG-utils 2.4.10

Bug Fixes

  • Start and end dates are correctly applied to new interval jobs (#431)

2.4.14

1/30/20 Brew-view 2.4.18, Bartender 2.4.6, BG-utils 2.4.9

Bug Fixes

  • Returning 418 status code when a model is too large to save (#308)

2.4.13

1/14/20 Brew-view 2.4.17, Bartender 2.4.6, BG-utils 2.4.9

Bug Fixes

  • Fixed issue where scheduler would not work with self-signed cert (#391)

2.4.12

12/5/19 Brew-view 2.4.16, Bartender 2.4.6, BG-utils 2.4.9

Added Features

  • Added configuration flag to allow rendering unsanitized output (#360)

2.4.11

11/12/19 Brew-view 2.4.15, Bartender 2.4.6, BG-utils 2.4.9

Bug Fixes

  • Requests should now survive a broker restart (#352)
  • Fixed issue where admin role and user pages could fail to update (#345)

Other Changes

  • Admin queues are now durable (#356)
  • Admin queues are no longer created with the auto-delete flag (#350)

2.4.10

9/27/19 Brew-view 2.4.14, Bartender 2.4.5, BG-utils 2.4.8

Bug Fixes

  • Static choices with alternate display text no longer fail validation (#325)

Other Changes

  • Typeahead parameters now use a scrollable display (#318)
  • Better stacktrace logging for local plugins (#317)

2.4.9

9/5/19 Brew-view 2.4.13, Bartender 2.4.4, BG-utils 2.4.8

Bug Fixes

  • HTML output is now rendered correctly (#312)

Other Changes

  • Now using npm instead of yarn

2.4.8

6/27/19 Brew-view 2.4.12, Bartender 2.4.4, BG-utils 2.4.8

Bug Fixes

  • Semicolon in request index page filters no longer breaks (#302)
  • Granfana link descriptions on about page respect application name (#301)
  • Frontend websocket connection now handles non-default base path (#298)

Added Features

  • Support for Pika v1 (#305)
  • Scheduled jobs can now specify a max number of concurrent executions (#209)
  • Interval jobs can now reschedule based on prior run completion (#209)

2.4.7

4/24/19 Brew-view 2.4.11, Bartender 2.4.3, BG-utils 2.4.7

Bug Fixes

  • Fixed configuration generation regression caused by #224 (#254)
  • Child requests cannot be created after the parent is completed (#252)
  • When mongo pruner removes a request the children are also removed (#246)
  • Fixed issue that could cause mongo pruner to not run (#245)
  • Mongo pruner will only directly remove top-level requests (#244)

Added Features

  • Toggle for displaying child requests on the index page (#248)
  • Added button for refreshing request index without reloading the page (#236)
  • Show a notification on request index page when changes occur (#180)

2.4.6

2/22/19 Brew-view 2.4.10, Bartender 2.4.2, BG-utils 2.4.6

Bug Fixes

  • Request index page overall search no longer specifies a hint (#235)
  • Bartender errors correctly propagate back through thrift interface (#229)
  • Removed unique index with potential to cause system registration issues (#222)
  • Dynamic choices URL source works correctly with a list of strings (#218)
  • All files correctly removed when upgrading using the rpm (#215)

Added Features

  • Config file upgrades can now be converted between json and yaml (#72)
  • Centos 7 rpm install now uses real systemd unit files (#17)

Other Changes

  • Config file extensions for rpm install are now .yaml, not .yml (#226)
  • Config files no longer contain bootstrap entries (#224)

2.4.5

1/11/19 Brew-view 2.4.7, Bartender 2.4.1, BG-utils 2.4.2

Bug Fixes

  • Bartender avoids extra network call if shut down while still starting (#214)
  • Correct Brew-view startup failure when authentication is enabled (#207)
  • No longer hanging if Rabbit broker runs out of resources (#203)
  • Errors loading a local plugin will no longer affect subsequent plugins (#202)
  • Fixed UI bug where more than one plugin version was considered 'latest' (#200)
  • Better error handling for simultaneous index creation (#198)
  • Initializing Prometheus counts correctly on startup (#197)
  • Accounted for magic comment when building local rpm (#196)
  • Styling fix for Systems Management page (#174)
  • Changing choices configuration no longer requires removing System (#58)

Added Features

  • Request view page will show spinner while request is in progress (#204)

Other Changes

  • Increased default Bartender timeout to 13 seconds (#182)
  • Added additional indexes to increase Request Index page performance (#105)

2.4.4

10/9/18 Brew-view 2.4.6, Bartender 2.4.0 BG-utils 2.4.0

Bug Fixes

  • Fixed a race that could cause request creation to wait forever (#195)

Added Features

  • Added Instance deletion endpoint to REST API

2.4.3

9/25/18 Brew-view 2.4.5, Bartender 2.4.0, BG-utils 2.4.0

Bug Fixes

  • Corrected problem with brew-view escalating CPU usage (#187)
  • Select boxes in the UI now have a maximum height (#169)

2.4.2

9/25/18 Brew-view 2.4.4, Bartender 2.4.0, BG-utils 2.4.0

Bug Fixes

  • Request create timeout is now -1 by default to match pre-2.4 behavior (#183)
  • The landing page now links newly-created systems correctly (#181)

Other Changes

  • Changed use of newly-reserved 'async' keyword to support Python 3.7 (#175)

2.4.1

9/5/18 Brew-view 2.4.1, Bartender 2.4.0, BG-utils 2.4.0

Bug Fixes

  • Fixed issue with spinner always being shown on some pages (#172)

2.4.0

9/5/18 Brew-view 2.4.0, Bartender 2.4.0, BG-utils 2.4.0

Added Features

  • 'Created' filtering in request index view now supports second precision (#153)
  • Browser window title now reflects current page (#145)
  • Brew-view responses now have a header specifying the beer-garden version (#85)
  • Webapp no longer relies on IDs in the URL (#98)
  • Configuration file will be updated on application startup (#79)
  • Connections to RabbitMQ can now be TLS (#74)
  • System list endpoint can now return only certain system fields (#70)
  • Prometheus metrics and Grafana dashboards (#68, #69)
  • Actions on the system management page are more responsive (#67)
  • Configuration files can now be yaml (#66)
  • Dynamic choices can now use the instance name as an input (#45)
  • User / authentication support (#35)
  • Request creation can now wait for completion without polling (brew-view #16)
  • Periodic request scheduler (#10)

Bug Fixes

  • Bartender checks for connection to Brew-view before Mongo to fix a race (#160)
  • Corrected condition that could cause 'Error: ' to flash on request view (#151)
  • Request view will continue to refresh even if a child has errored (#122)
  • Fixed issue where /var/run/beer-garden was removed after rpm install (#113)
  • Setting queue-level TTL for admin queue messages (#101)
  • Data persisted in the webapp using local storage instead of cookies (#92)
  • Bartender will error if SSL error occurs during Brew-view check (#65)
  • Local plugins are better about logging stacktraces (#57)
  • Date on request index page is always UTC (brew-view #56)
  • Fixing support for Unicode string values when using Python 2 (#54)
  • Nested request display looks better when using slate theme (#41)

Other Changes

  • Request index spinner icon looks better on slate theme (#155)
  • Split system and instance columns on request index page (#103)

2.3.9

6/14/18 Brew-view 2.3.10, Bartender 2.3.7, BG-utils 2.3.6

Bug Fixes

  • Re-added Request indexes that were removed in 2.3.7

2.3.8

6/12/18 Brew-view 2.3.9, Bartender 2.3.6, BG-utils 2.3.4

Bug Fixes

  • Fixed problem with new versions of Marshmallow causing empty requests to be returned from the request list endpoint

2.3.7

6/7/18 Brew-view 2.3.8, Bartender 2.3.6, BG-utils 2.3.4

This release addresses two critical problems with database performance. To support the fix an additional field was added to the Request model and the indexes for the Request collection were updated.

When updating to this version the Request collection will be updated to reflect these changes. This will happen automatically and requires no action on the part of administrator. Status messages will be logged at the WARNING level as the upgrade occurs.

See issue #84 for a detailed explanation.

Bug Fixes

  • Database operations sometimes timed out on slow networks due to configuration error (#84)

Other Changes

  • Reworked database indexes so Request queries are more efficient (#84)

2.3.6

4/6/18 Brew-view 2.3.6, Bartender 2.3.5, BG-utils 2.3.3

Added Features

  • Using RabbitMQ publisher confirms when publishing requests (#37)
  • Brew-view accepts ca_cert, ca_path, and client_cert_verify configuration options (beer-garden/brew-view#43)
  • Bartender now explictly checks for connectivity to Mongo and RabbitMQ admin interface on startup (#38, #48)

Bug Fixes

  • Status monitor no longer continuously restarts when RabbitMQ connectivity is lost
  • Clearing queues now works with Rabbit 3.7
  • Child rows in nested request display now show correct created time
  • Command-based dynamic choices now work without a 'default' instance (#47)

Other Changes

  • Adding explict support for Python 3.4
  • Using non-Brewmaster exceptions from Brewtils
  • Using pytest instead of nose to run tests

2.3.5

4/3/18 Brew-view 2.3.5, Bartender 2.3.4, BG-utils 2.3.3

Added Features

  • Attempting to update a completed request without actually modifiying data is no longer an error (beer-garden/brew-view#49)

Bug Fixes

  • Configuration file generation fix for Python 2

2.3.3

2/21/18 Brew-view 2.3.3, Bartender 2.3.3, BG-utils 2.3.2

Bug Fixes

  • Bartender shutdown will now be clean even before making Brew-view and RabbitMQ connections

Other Changes

  • Using Yapconf for configuration loading
  • Running Flake8 linting on source and tests

2.3.1

2/5/18 Brew-view 2.3.1, Bartender 2.3.0, BG-utils 2.3.0

Bug Fixes

  • Fixing issue with manual request creation targeting incorrect system

2.3.0

1/26/18

Added Features

  • Bartender can now be configured to skip server certificate verification when making HTTPS requests
  • Added Bartender custom CA certificate configuration option
  • Timestamps now have true millisecond precision on platforms that support it
  • Plugins can now specify max_instances as a keyword parameter without needing to define a System
  • Command Index page now supports pagination, cosmetic changes
  • Added ability to specify a textarea be used as the input for a Parameter
  • System Admin page now has links to the individual System pages
  • Requests that incorrectly fail frontend validation can now be modified and sent manually
  • Reworked fronted sidebar to be clearer when multiple verions of a System are registered
  • Dark theme for frontend
  • New Parameter types: date and datetime
  • Searching Request index by 'created' field now uses datepickers
  • REST API can now be served with a URL prefix
  • Notifications are now published to RabbitMQ and/or a specified URL when significant events occur

Bug Fixes

  • Multi Parameters that are type 'Dictionary' now work correctly
  • Corrected RabbitMQ users - the 'normal' user is now only used by plugins and only needs read permission
  • 'Any' Parameters that are also multi no longer disappear when transitioning from valid to invalid
  • Fixed possible temporary error when deleting a system
  • Better support for large number of concurrent plugin startups
  • Corrected the validation icon and close button overlap for string parameters inside an array

Other Changes

  • Systems can no longer be registered with the same display name and version as an existing System
  • The attempt to update a Request after its processed now has a maximum retry count
  • Better data integrity by only allowing certain Request status transitions

2.1.1

11/21/17

Bug Fixes

  • Modified System deletion procedure so it works correctly on Systems with no Instances
  • Fixed bug where validation error during first-time System registration resulted in an empty System

2.1.0

10/23/17

Added Features

  • Added popover icon with an explanation for a Request's status to the Request View page
  • 'Make it Happen!' buttons are now middle-clickable
  • Added sorting to Queue Management table
  • ACTION-type requests can now be aged off similar to INFO-type requests
  • Command descriptions can now be changed without updating the System version
  • Added updated_at field to Request model
  • Added admin, queues, and config endpoints to Swagger
  • Brewtils: SystemClient now allows specifying a client_cert
  • Brewtils: RestClient now reuses the same session for subsequent connections
  • Typeaheads immediately display choices when focused
  • Standardized Remote Plugin logging configuration
  • Choices providers can now return a simple list
  • PATCH requests no longer need to be wrapped in an operations envelope
  • UI will display a warning banner when attempting to make a request on a non-RUNNING instance
  • Request creation endpoint now includes a header with the instance status in the response
  • Available choices for one parameter can now depend on the current value of another parameter
  • Brewtils: Added domain-specific language for dynamic choices configuration
  • Brewtils: SystemClient can now make non-blocking requests
  • Search functionality on the Command Index page
  • Added metadata field to Instance model
  • Brewtils: RestClient and EasyClient now support PATCHing a System

Bug Fixes

  • Link to RabbitMQ Admin page now works correctly with non-default virtual host
  • Large (>4MB) output no longer causes a Request to fail to complete
  • Better handling of timeout failures during Request creation
  • Number types no longer need be be selected in a Typeahead
  • Removed default model values that could cause serialization inconsistencies
  • System descriptors (description, display name, icon name, metadata) now always updated during startup
  • Corrected display for a multi string Parameter with choices
  • Stricter type validation when making a request with string, integer, or boolean parameters
  • Added TTL to Admin messages so they don't persist forever
  • Better handling of null values in the frontend
  • Validating instance_name during request creation
  • Reworked message processing to remove the possibility of a failed request being stuck in 'IN_PROGRESS'
  • Correctly handle custom form definitions with a top-level array
  • Increased startup reliability for Systems with many (>15) Instances
  • Bartender helper threads can no longer hang shutdown
  • POST and PATCH requests without a content-type header now return status code 400
  • Better select control placeholder text
  • Requests with output type 'JSON' will now have JSON error messages
  • Smarter reconnect logic when the RabbitMQ connection fails
  • Attempting to remove 'orphaned' commands if any are found during a query

Deprecations / Removals

  • The following API endpoints are deprecated:
    • POST /api/v1/admin/system
    • GET /api/v1/admin/queues
    • DELETE /api/v1/admin/queues
    • DELETE /api/v1/admin/queues/{queue_name}
  • Brewtils: multithreaded argument to PluginBase has been superseded by max_concurrent
  • Brewtils: These decorators are now deprecated:
    • @command_registrar, instead use @system
    • @plugin_param, instead use @parameter
    • @register, instead use @command
  • These classes are now deprecated:
    • BrewmasterSchemaParser, instead use SchemaParser
    • BrewmasterRestClient, instead use RestClient
    • BrewmasterEasyClient, instead use EasyClient
    • BrewmasterSystemClient, instead use SystemClient

Other Changes

  • Searching on Request Index page no longer searches request output
  • Reset button on the Command View page ignore 'Pour it Again' values and always reset to defaults
  • Brewtils: Request processing now occurs inside of a ThreadPoolExecutor thread
  • Using Webpack to bundle frontend resources
  • Removed dependencies on compiled Python packages (#196) and Flask
  • Using the subprocess32 module to run Local Plugins
  • Local plugins no longer run in their own separate process groups
  • Local and Remote plugins are now functionally identical
  • Improved concurrency by making all Thrift calls asynchronous

2.0.4

8/04/17

Bug Fixes

  • Corrected typo in request index page that prevented filtering for IN_PROGRESS requests from working

2.0.3

8/01/17

Bug Fixes

  • Reworked request index query to address performance bottleneck

2.0.2

7/26/17

Bug Fixes

  • Fixed frontend validation problem for a nullable boolean parameter with a null default

2.0.1

7/14/17

Bug Fixes

  • Added Object.assign shim for compatability with older browsers

2.0.0

7/5/17

Added Features

  • Support for remote plugins
  • Support for custom HTML templates on request pages
  • Support for Dynamic choices
  • Support for starting/stopping individual Instances
  • Support for display names of a plugin
  • Support for metadata for a plugin
  • Support for Python 3

Bug Fixes

  • Optional model with default values
  • Bug where nested parameters would not get checked in system validation
  • GUI bug where timestamps for child request didnt look right
  • Bug with optional list arguments
  • Bug where nested request output type didnt look right

Other Changes

  • Added better exception handling to API
  • Better error reporting for serialization failures
  • The system model has changed
  • The command model has changed
  • RabbitMQ now uses a topic instead of an exchange

Security

  • All Docker images have been upgraded
  • We now build CentOS 6 and CentOS7 RPMs

1.1.0

Added Features

  • Support for auto-reconnect to brew-view if it is down on startup
  • Support for stopping, starting and reloading plugins
  • Support for dynamically deploying new plugins
  • Support for output_type for Requests
  • This changelog

1.0.4

7/19/2016

Added Features

  • Support for Multi-threaded, single instance plugins
  • Support for nested requests
  • Support for INFO Command Types
  • Support for comments on requests
  • Support for purging INFO commands

Bug Fixes

  • Bug where RPMs would not get correctly updated

Other Changes

  • Join times for threads to be non-zero. This greatly reduces CPU utilization

1.0.3

12/30/2015

Bug Fixes

  • Bug where Plugins would not work with non-ssl enabled versions of brew-view

1.0.2

12/3/15

Security

  • Added SSL Support

1.0.1

11/10/15

Other Changes

  • Bumped bg-utils version

1.0.0

10/2/15

Added Features

  • Support for Local Plugins
  • Initial Build of the Backend Threads
  • Support for Validating Requests
  • Support for Processing Requests
  • Support for clearing a queue
  • Support for getting a System state
  • Support for Stopping a System
  • Support for Starting a System
  • Support for Restarting a System
  • Support for killing a System
  • Support for Stopping All Systems
  • Support for Starting All Systems
  • Support for Killing All Systems
  • Support for getting Bartender version
  • Support for ping
  • Support for building/deploying as an RPM
  • Support for easily generating logging and configuration files