RT: Request Tracker
RT 5.0.2 Release Notes
RT 5.0.2beta1 -- 2021-07-26
===========================
RT 5.0.2beta1 is now available for testing. The list of changes
included with this release is below.
https://download.bestpractical.com/pub/rt/devel/rt-5.0.2beta1.tar.gz
https://download.bestpractical.com/pub/rt/devel/rt-5.0.2beta1.tar.gz.asc
SHA-256 sums
33ace81760621a108705aeebfcc1375a37e207099df71f403e9e7957418a0b1e rt-5.0.2beta1.tar.gz
84b10b066ccea1d64a86006f5b0ba8334afc2f1d876c72477c047206308f2997 rt-5.0.2beta1.tar.gz.asc
General features and fixes
* Update Starts on SLA changes even if Starts was already set
* Accept usernames for email input fields on ticket create/update
* Support group:NAME and group:ID in non-single role input fields
* Create an autocompleter for Principals (works with both users and groups)
* Support more characters for user/group names in non-single role input fields
* Normalize and validate time inputs
* Support to generate different dashboard content for each recipient
* Use user timezone for date "=" queries in ticket search
* Add "Create Via Email" and "Create Via Web" conditions
* Fix table wrapping error in Ticket/Update.html
* Don't escape queue name in title generation stage as it'll be escaped later
* Allow to squelch recipients that also exist in one time inputs
* Show all valid statuses on Asset bulk update page
* In the datepicker, reset the time part after date input is cleared
* Support columns as values in ticket search (ticket values on right-hand side in searches)
* Support a friendly syntax for custom field columns as values in ticket search
* Allow to specify CF Content/LargeContent columns in the keyword part of SQL
* Support role searches like Owner = CF.cid or Owner = Creator
* Improve UI of unread messages notification
* Sync one time inputs back to checkboxes on ticket update page
* Automatically load more txns to fill browser window on scroll history mode
* Fix duplicated closing tag for attachment delete links
* Remove search string including numbers in ticket autocomplete search on select
* Fix RecentlyViewedTickets to deal with shredded/merged tickets
* Fix bug that kept 11 tickets in the "recently visited" list instead of 10
* Show dependencies (like dashboards) and confirm before deleting saved searches
* Fill up cells of record's last row in search results
* Add support of "Lifecycle =" and "Queue LIKE" to GetReferencedQueues for more search options
* Support copying saved charts like searches
* Fix wrongly duplicated one-time addresses on ticket update page
* Add various missing ColumnMap entries
* Fix error when removing multiple holders of an asset
* Add basic stacked bar chart support
* Remove extra closing div on Login/Logout pages
* Add option to disable ticket linking in articles by class
* Add entry hint as custom field tooltip
* Disable submit on enter when input's autocomplete list shows up
* Support quoted custom fields as values
* Exclude end time when limiting txn date to a day
* Trigger UpdateCc/UpdateBcc input change only once when clicking "All recipients"
* Sync one-time checkboxes to text inputs in a consistent way
* Translate selfservice articles search button (thanks, elacour!)
* Support shallow searches for ticket roles
* Support to search user defined group names in watcher limit
* Support order by watcher's custom fields for ticket search
* Support more watcher fields including user cfs in search result format
* Add more watcher fields including user cfs to OrderBy/Columns in search builder
* Upgrade OrderBy "Owner" to new version "Owner.Name" in saved searchs
* Create a standard RT Time Worked report
* Add grouping by custom roles for ticket search charts
* Reduce space used by Current search on Query Builder to avoid saved search overlap
* Group by direct members of role groups for ticket search charts
* Use Name as the default watcher field in search results
* Allow clearing roles on bulk updates page
* Remove unexpected leading spaces in user signature input
* Add label text to old-attach form for accessibility
* Add the missing "form-control" class to autocomplete cf inputs in query builder
* Fix EditSearches title after submission on Query Builder page
* Let article summary take the whole width in article list
* Pass all request arguments to /SelfService/Open.html
* Disable inline edit for related tickets in "Assets" widget of ticket display
* Transactions on History.html page should link to transaction display page
* Clear "Add Columns" select after change on Query Builder
* Translate selfservice articles search button
* Render a label for both cases when displaying shredder objects,
making checkbox available to select objects to shred
* Align label/value columns for Assets widget in ticket display
* Use checkbox class for multi select list input
* Remove blue background on dropdown-item active
* Explicitly exclude "deleted" status from queue list portlet
* Require Name field when creating or editing Article
* Add QueueListAllStatuses portlet to show tickets info of all statuses
* In Self Service, don't explicitly call PageLayout as it's included already
* Remove extra closing div on Login/Logout pages
* Use 2/10 col layout for custom fields only in transaction display
* Use an independent col for each asset custom field grouping
* Add the missing from-control css class for queue autocomplete input
* Move asset field-specific css classes up to the row instead of just label
* Add autocomplete for assets input
* Don't change background color on click of dropdown items
* Load user-level search preferences for ticket searches only, fixing errors
with custom search formats and transaction search results
* Add more ticket info to transaction display page
* Register the missing autocomplete handler for refreshed inline-edited row
* Add webpath to RelatedData href (thanks, jtlarson!)
Administration
* Generalize Owner logic in Shredder to any Single role group
* In shredder, remove SetWatcher rows in transaction history as well
* Add setting $AssetMultipleOwner to allow many owners on assets
* Default --libs-group value from "bin" to "root"
* Add --dry-run option to rt-crontool
* In validator, ensure tickets and queues have all of their default role groups, individually
* In validator, prompt to create missing default role groups
* Skip merged tickets in role groups validation
* Allow to create missing queue-level custom role groups when needed
* For external auth, support cf mappings like CF.foo and UserCF.foo
* Support array and code in attr_map of external auth
* Don't quote table names in shredder SQL output
* Avoid "Wide character in print" warnings when generating shredder SQL output
* Add QuoteWrapWidth option for text quoted during reply/comment
* Set the $AttachmentListCount config's default value to 5
* Clarify external auth logging when users are not found
* Fix removal of scrips when shredding queues
* Avoid errors in shredder when Organization has a hyphen
* Avoid errors in shredder when username has a hyphen
* Avoid errors in shredder when queue name have a hyphen
* Log number of records returned from LDAP search
* Support searching NULL(unset) values on user/group admin pages
* Only show hints for user CFs configured in external settings on create
* Fix removal of custom fields when shredding queues
* Add transaction records for dashboard/savedsearch changes
* For articles, do not encode HTML if skip Escape HTML option selected
* In rt-crontool, add reload-ticket option to refresh metadata before processing
* Avoid a known problem version of Mojo::DOM::CSS
* Update DBIx::SearchBuilder to 1.68 to avoid segfaults on MariaDB 10.2+
* Add parallel support for crontool
* Add Parallel::ForkManager to dependency for parallel crontool
* Log the object that exceeds DependenciesLimit in shredder
* Remove SetOwner rows in transaction history on user shred
* Add ExternalAuth to the exceptions for requiring a password
* Reset ObjectCustomField sort order when re-enabling a Custom Field
* Update ObjectCustomField sort order only if necessary on re-enable
* Pass SavedChartSearchId from chart portlet
* Skip rights check when setting default object custom field values
* Add support to clear mason cache via web interface
* Add LDAP email authentication to External Auth
* Don't shred subgroups' member relationships when shredding ticket role groups
* Provide a way to select privileged and unprivileged users in admin
* Remember IncludeSystemGroups value on page navigation
* Add statement-log option to render statement logs in CLI
* Support to set sort order of applied custom roles
* Show custom roles in correct order on queue watcher and ticket pages
* Add no-sqldump option to rt-shredder to avoid generating backups
* Add paging support for group Members page
* Tweak css for page links to not overflow in Firefox
* Add $ShowSearchNavigation option to skip building search navigation links
* Add ability to search for disabled users
* Restore Ticket object to arguments passed to Preformatted, making ArticleTemplates work again
* Reload scrubber rules when web config changes are made
* Make statuses having upper cased chars work on lifecycle mappings page
* Multiple updates to set proper inputs on RT web configuration page
* Restyle admin user select page with a bare titlebox
* Upgrade Chart.js to 2.9.4
* In rt-dump-initialdata, add config for "no" variant of the disabled option
* In rt-dump-initialdata, skip attributes of attributes in serializeration as it's unsupported yet
* Log database config overrides via PreInitLoggerMessages
* Add support for deleting configs in database from web UI
* On user admin page, remember IncludeSystemGroups value on page navigation
* Create new config option for home page support email
* Support deleting custom field values on form submit in CF config
* In CreateTickets action, allow skipping of create ticket blocks through passing arg
* Add support for custom fields on article classes
Email Encryption/Signing
* Support separate certificates for SMIME encryption and signing
* Add encryption and signing options for digest email
* Provide an option to skip GnuPG tests
* Handle encrypted outgoing emails in digest email
* Add OtherCertificatesToSend option for SMIME
* Set path to GnuPG binary in GnuPG::Interface constructor (thanks, aruthven!)
* Fix uninitialized warnings of $latest_user_main_key for gpg 2.2
* Handle FAILURE keyword for gpg 2.2
* Add gpg.conf for gpg 2.2 so we can specify passphrase in command line
* Update warning message tests for gpg 2.2
* Don't override fingerprint if it exists already
* Make t/mail/crypt-gnupg.t pass with gpg 2.2
* Quit gpg-agent after tests for gpg 2.2
* Move signed_old_style_with_attachment.eml to emails directory
* Always use temp gpg homedir to get a cleaner env
* Add extra ignored keywords for gnupg 2.2.x
* Fix unit test to cope with variations in how different versions of OpenSSL print certificates
* Default cert-digest-algo from SHA1 to SHA256
* Bump GnuPG::Interface to 1.00 to support gpg 2.2
* Report the cert authority in an "assured by ..." clause
* Report the S/MIME signer correctly when there is no EmailAddress
* Fix a bug in the logic that suppresses the "email is unsigned" warning
* Add AgorithmName to info returned by ParseKeysInfo
* For GnuPG, add a tooltip with additional info about the signature
* Add ability to download GnuPG public keys
* Store and display additional info about S/MIME signatures
* Extract email addresses from S/MIME certificates as specified in RFC 5750
* Support SMIME certificate revocation using OCSP/CRL
* Add deprecation warnings to RT::Test::GnuPG and RT::Test::SMIME.
* Allow specification of outbound signing/encryption protocol on a per-queue basis
* In Admin/Users/Keys.html, do not call "UseForOutgoing" when we have no $Queue object
* Explain conversion of legacy list args to a hash in CheckRecipients
* Add RT::Attachment->CryptStatus method
* Fix error if a CA certificate does not define CRLDistributionPoints
* Keep entire GnuPG fingerprint; don't truncate to 8 characters
* Include S/MIME certificate serial number in tooltip
* Add ability to download S/MIME certificates
* Switch from key to fingerprint for user PrivateKey
* Add admin page to manage GnuPG keys
* Show "Preferred GnuPG key" input only if GnuPG is enabled
* Migrate remaining RT::Test::SMIME in tests to RT::Test::Crypt
* Bump GnuPG::Interface to 1.02 to fix secret key deletion issue for gnupg 2.2
* Disable using WKD on GnuPG tests that might attempt to use the network (thanks, puck!)
Developer
* In Users autocomplete helper, add Initial callback to access incoming values
* Fix Type/Recurse/MaxDepth params in Init callback of /Elements/ShowLinksOfType
* Add EndOfHead callback to /Elements/Header
* Add BeforeTitleBoxStart callback for ShowHistoryHeader
* Add ARGSRef and HasTxnCFs args for Default callback of ShowTransaction
* Parse Notify action argument assuming it's comma separated
* Default lifecycle type to ticket on SelectStatus
* Add support for setting user CFs on create
* Add sort for external custom field values
* Add callbacks to Forward.html
* Add callbacks for customizing report queries
* Pass ShowHints via a callback to provide a way to hide hints
* Add Initial callback in self service Create.html
* Add a callback to modify rights on ticket display sections
* Add callback in Users autocomplete helper to modify users limit
* Add attribute link support
* Add callbacks to Admin->Groups->Members page
* Allow RT_HOST to be set via environment variable for testing
* Add configuration for CI testing with docker via TravisCI
* Update configuration to move CI testing from TravisCI to Github Actions
* Add ModifyContent callback to ShowTransactionAttachments
* Don't touch attachment content's newlines in REST 1.0
* Encode attachment filename to UTF-8 like other fields in REST 1.0
* Force update MIME encoding for ticket creation via REST 1.0
* Exclude MIME attachments when requesting a transaction's content
* Add callback for displaying additional content on admin home page
* Fix Type/Recurse/MaxDepth param names for Init callback of ShowLinksOfType
* Add ModifySystemAttributes callback to system configuration page
* Implement RT::Attribute::CurrentUserCanSee for transaction rights check
* Allow for string of user IDs to be passed for exclusion from autocomplete results
* Add BeforeOption callback to customize Prefs/Other.html
* Add BeforeProcessArguments callback to group members
* Add option to render TxnRecipients input in ShowSimplifiedRecipients
* Tweak RT::Date to parse ISO-8601 combined date and time representations
* Add ModifyCollectionListArgs callback to user admin index page
* Add callbacks to user admin index page
* Call ApplyTransactionBatch only in the most outer Atomic call
* Don't call ApplyTransactionBatch in Atomic when in DryRun mode
* Add ValidateValue callback in ValidateCustomFields
* Pass term and args to ModifyUsersLimit so it can behave differently based on it
* Add ModifyGroupsLimit callback for Groups autocomplete
* Sync callbacks of Users/Groups autcomplete to Principals
* Move source superfish file to versioned directory
* Support FromSQL queries for Assets and Transactions in REST 2
* Remove outdated REST 2 test code that's for RT 4
* Add more search args to Initial callback in Search Results to modify them
* Add callbacks to user admin index page
* Drop jquery.jgrowl.map hint as we don't actually serve the map file
* Do not remove WebPath from undefined result page in menu (thanks, voegelas!)
* Add AfterQueueAddresses callback for queue admin page
* Add ModifyUsersLimit callback to user search page
* Add support for custom fields in REST2 JSON query
Documentation
* Fix configure's --libs-group help string
* Add documentation for serializer/importer process
* Document columns as values in ticket search
* Move SignatureAboveQuote documentation to Message box properties
* Fix pod warnings in RT::User docs
* Document more helpful shredder indexes (thanks, greg.vernon!)
* Document DisplayTotalTimeWorked option and default to off
* Document additional plackup options via rt-server
* Document a fix for perl module permissions problem
* Document new queue and lifecycle search options
* Apply some changes from updated RT 5 docs
* Add external docs images to local
* Document recommended Apache MPM for RT
* Cite explicit author for eye dropper icon
* Add basic POD for RT::ObjectCustomFields
* Document different sorting based on Postgresql local setting
* Document the timezone comparison fix in UPGRADING
* Update Articles docs to include disabling ticket linking
* Document shrink-cgm-table upgrade step
* Add context to the CF searching documentation
* Add docs for new shallow search option
* Clarify docs on how to pass additional CLI options to Init
* Update rt-shredder documentation
* Document the Transaction Batch bug fix
* Document the database updates for the Owner.Name change
* Convert pod link to private method to code format
* Document custom role group search
* Add docs for User Time Worked Report
* Add docs describing chart group-by with roles
* Document $UserAutocreateDefaultsOnLogin only once
* Add --user to process dashboard subscriptions for a single user only
* Update third-party README versions
* Add documentation for REST2 custom field JSON queries
* Update REST2 docs for TransactionSQL and AssetSQL
* Document how to show Final Priority if desired
* Add version to fontawesome third-party directory
Internals
* Probe system level cache to speed up right check procedure
* With Perl 5.18 and later, warn if permissions prevent a site config from being loaded
* Switch to SHA-256 for snapshot checksums as in release notes
* Reuse CanonicalizePrincipal in DeleteRoleMember
* Dump parsed source code instead of "DUMMY" for sub references in tests
* Defer AJAX recipients update a little bit to get form's latest status
* Switch to "POST" when updating ticket search result format via AJAX
* Concatenate strings before encoding conversion to avoid character breakage
* Set proper transfer encoding to avoid long lines in email
* Fix uninitialized warning in ticket searches with __active__ and __inactive__ items
* Add ObjectsForCreating method to support privacy in saved searches
* For saved searches, split objects lists for creating and loading
* Try harder to get custom field objects to inspect in searches
* Use CanonicalizePrincipal to attempt to load users
* Handle subject tag if prefixed with http:// by email clients
* Only remove extra CF values when they are actually extra
* Confirm record is defined before calling id
* Remove delete of old CF values as AddValueForObject already handles it
* Fall through to false on watcher rights check
* Allow queue CF rights to apply on single-queue searches in charts
* Clear user CFs from form args if set on create
* Add multipart/form-data encoding to EditAboutMe form
* Set QUOTEVALUE only if necessary to use default behavior as much as possible
* Handle multipart attached emails when TreatAttachedEmailAsFiles is enabled
* Load Test::MockTime earlier to fully replace time functions in core
* Sort hashes in attribute content to avoid unnecessary updates
* Include related transactions for attribute serialization
* Check txn's fields for its relationship with ticket
* Fix inconsistent datatypes error for Oracle upgrade
* Include related links for attribute serialization
* Use the correct CurrentUserCanSetOwner return value in menus and ticket display
* Avoid running multiple rt-externalize-attachments simultaneously in tests
* Cache Roles method for ticket/queue objects
* Don't declare variables in modifier statements as behavior is not defined in Perl
* Only keep enabled roles in registered list
* Tweak AppliesToObjectPredicate as all registered custom roles are enabled
* Avoid duplicated items in index.html in generated docs website
* Make sure RT::Queue::CustomRoles returns an empty collection if no rights
* Filter queue custom roles by checking current user's right
* Fix "Case sensitive search by Queues.Name" warnings in GetReferencedQueues
* Don't set RowsPerPage if we can't find the pre-defined value
* Fall back GroupId to 0 to avoid SQL syntax error
* Use subquery when possible in case ticket ids are too many for search chart
* Add the missing WebPath to user RelatedData urls
* Add the missing WebPath to links in article saved searches
* Add username to SQL statement log (thanks, g-wolter!)
* Prefix "main." to main columns to avoid "ambiguous column name" error
* Don't enable/disable related groups when enabling/disabling custom roles
* Group search on queue watchers page is case insensitive
* Enable previously disabled custom role groups
* Don't recursively add members to ticket role groups in CachedGroupMembers
* Check direct group members in recursive member methods for ticket role groups
* Check direct group members in rights check for ticket role groups
* Exclude ticket role groups for recursive validity check in CachedGroupMembers
* Update shrink-cgm-table to remove indirect members of ticket role groups
* Check role's direct group members for ticket watcher searches
* Check role's direct group members for ticket watcher group searches
* Convert simple OR'd statements in TicketSQL to use IN for better performance
* Convert more OR'd clauses to use "IN" for performance
* Skip internal users in user list on admin page
* Convert rt-crontool to RT::Interface::CLI Init function
* Add a rule to explicitly handle verbose|v in CLI
* Remove Requestors from ticket Accessible as it's not a core field
* Exclude user defined groups in role groups for _WatcherJoin
* On Pg 9 switch key/value pair if value is CF value and key is not
* Support to create ticket/asset role groups lazily
* Default PrincipalId to 0 to avoid SQL error for not-existing role groups
* Improve RoleGroup method to create the group if asked
* Optionally validate Requestor/AdminCc/Cc as they could be lazily created
* Ensure values returned from DistinctFieldValues are utf8
* Hide "Total" row for not-distinct results in search chart to avoid confusion
* URL of user autocomplete for unprivileged users should be below /SelfService
* Trap fatal errors when processing column map values
* Move priority translation before status for better performance
* Use core RT::Interface::Web::CSSClass for priority (thanks, elacour!)
* Use CSSClass() to clean up spaces/non-ascii chars on priority select (thanks, elacour!)
* Use CSSClass() to clean up spaces/non-ascii chars search results (thanks, elacour!)
* Ensure values returned from DistinctFieldValues are utf8
* Add arg for ShowCustomFieldCustomGroupings to pass in classes for groupings
A complete changelog is available from git by running:
git log rt-5.0.1..rt-5.0.2beta1
or visiting
https://github.com/bestpractical/rt/compare/rt-5.0.1...rt-5.0.2beta1