Mailing List Archive

rt branch 5.0/improve-db-connection-handling updated. rt-5.0.2-222-gd47f0ee501
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "rt".

The branch, 5.0/improve-db-connection-handling has been updated
via d47f0ee5017bfe3aa21c3c9cf51659feaae7a3bd (commit)
from e9b17c55276c805501d59e8bdacb108a30ba2e76 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit d47f0ee5017bfe3aa21c3c9cf51659feaae7a3bd
Author: Jason Crome <jcrome@bestpractical.com>
Date: Wed May 11 13:06:55 2022 -0400

Soften language around password-less DB logins

diff --git a/etc/RT_Config.pm.in b/etc/RT_Config.pm.in
index 4a72c5b2ec..e168d1599e 100644
--- a/etc/RT_Config.pm.in
+++ b/etc/RT_Config.pm.in
@@ -283,7 +283,8 @@ Set($DatabaseAdmin, "@DB_DBA@");

=item C<$AllowEmptyDatabasePassword>

-Allow RT to use an empty database password. B<NOT> recommended!
+Allow RT to use an empty database password. Set this to 1 if your database
+server authenticates users without using passwords.

=cut

diff --git a/etc/RT_SiteConfig.d/00_Core_Config.pm b/etc/RT_SiteConfig.d/00_Core_Config.pm
new file mode 100644
index 0000000000..ecdb98d297
--- /dev/null
+++ b/etc/RT_SiteConfig.d/00_Core_Config.pm
@@ -0,0 +1,268 @@
+use utf8;
+
+# Any configuration directives you include here will override
+# RT's default configuration file, RT_Config.pm
+#
+# To include a directive here, just copy the equivalent statement
+# from RT_Config.pm and change the value. We've included a single
+# sample value below.
+#
+# If this file includes non-ASCII characters, it must be encoded in
+# UTF-8.
+#
+# This file is actually a perl module, so you can include valid
+# perl code, as well.
+#
+# The converse is also true, if this file isn't valid perl, you're
+# going to run into trouble. To check your SiteConfig file, use
+# this command:
+#
+# perl -c /path/to/your/etc/RT_SiteConfig.pm
+#
+# You must restart your webserver after making changes to this file.
+#
+
+# You may also split settings into separate files under the etc/RT_SiteConfig.d/
+# directory. All files ending in ".pm" will be parsed, in alphabetical order,
+# after this file is loaded.
+
+Set( $rtname, 'arrtee.cromdome.local' );
+Set($WebDomain, "localhost" );
+Set($WebPort, 8080);
+Set($LogToSTDERR, "debug");
+Set($MailCommand, "mbox");
+Set($DevelMode, 1);
+Set($RTAddressRegexp, ".+@(artee\.cromedome\.local)" );
+
+# TODO: Document in RT_Config.pm/RT::Config
+# This is *not* recommended for production environments!
+# (frankly, not recommended for development environments either)
+Set( $AllowEmptyDatabasePassword, 0 );
+
+Plugin( "RT::Site::Siemens" );
+Plugin( "RT::Site::Siemens::Import::CSV" );
+Plugin( "RT::Extension::Admin::DashboardSubscriptions" );
+Plugin( "RT::Extension::BulkUpdateAll" );
+Plugin( "RT::Extension::DynamicTicketSearch" );
+Plugin( "RT::Extension::SwitchUsers" );
+Plugin( "RT::Site::Siemens::AttachmentTypes" );
+Plugin( "RT::Site::Siemens::BulkActions" );
+Plugin( "RT::Site::Siemens::Caremore" );
+Plugin( "RT::Site::Siemens::ClamAV" );
+Plugin( "RT::Site::Siemens::Delegates" );
+Plugin( "RT::Site::Siemens::IPINS" );
+Plugin( "RT::Site::Siemens::REST2" );
+Plugin( "RT::Site::Siemens::SyncServiceProvider" );
+Plugin( "RT::Site::Siemens::FirstLogin" );
+Plugin( "RT::Extension::ExcelFeed" );
+Plugin( "RT::Extension::HistoryFilter" );
+Plugin( "RT::Extension::MandatoryOnTransition" );
+Plugin( "RT::Extension::Announce" );
+Plugin( "RT::Extension::InlineHelp" );
+Plugin( "RT::Extension::FullTextCFSearch" );
+Plugin( "RT::Extension::REST2::Jobs" );
+
+# Not ready for RT5?
+# Plugin( "RT::Extension::FormattedTransactions" );
+
+# Need DBD::Oracle for these!
+#Plugin( "RT::Site::Siemens::Batch::Processing" );
+
+##
+## TAKEN FROM SIEMENS ON SITE CONFIG
+##
+
+# Disable some optional features to streamline the display
+Set($ShowRTPortal, 0);
+Set($HideArticleSearchOnReplyCreate, 1);
+Set($EnableReminders, 0);
+
+# Remove quick ticket create from user summary page
+# Also remove UserAssets since RT's assets feature is not used
+Set(@UserSummaryPortlets, (qw/ExtraInfo GroupMembership ActiveTickets InactiveTickets/));
+
+# This one kicks in once a user set
+# "Show saved search instead of Vurious At A Glance as homepage?" to "Yes"
+# This setting can be accessed via
+# Logged in > Settings > Preferences, section "Vurious at a glance"
+# Note that the saved search referred to has to exist!
+Set($SearchResultsHomepageSavedSearch, 'All Active Tickets');
+
+# Control custom fields shown on search filter
+Set(@TicketSearchFilterCustomFields, 'Severity', 'Asset ID', 'Asset Name', 'Vulnerability ID', 'Layer', 'References', 'Source Type', 'Exception Source', 'Exception ID', 'Critical Asset');
+Set(@TicketSearchFilterCoreFields, qw/Status Subject Owner Requestors Cc LastUpdatedBy/);
+Set(@TicketSearchFilterCustomRoles, qw/CISO ISO/);
+Set(@TicketSearchFilterStatuses, qw{ open closed verified reassign_pending reported_fixed false_positive_approved false_positive_requested exception_approved exception_requested support_requested escalation_level_1 escalation_level_2 escalation_level_3 escalation_special });
+
+# BPS 2021-10-29 Enable InlineHelp
+Set($ShowInlineHelp, 1);
+
+# BPS 2021-10-29 Also need 'perl' handler for regular initialdata files
+Set( $InitialdataFormatHandlers,
+ [ 'perl', 'RT::Initialdata::JSON' ] );
+
+Set($UsernameFormat, "organization");
+
+Set(@CustomFieldValuesSources, (qw(RT::CustomFieldValues::AnnounceGroups)));
+Set($BulkUpdateAccessGroup, 'Core Team');
+
+Set($SwitchUsersGroup, 'Core Team');
+Set(@SwitchUsersSharedFields, qw/EmailAddress SMIMECertificate/);
+
+Set(@AllowedAttachmentTypes, 'text/*', 'message/*', 'image/gif', 'image/jpeg', 'image/png', 'application/pdf');
+
+Set($HideUnsetFieldsOnDisplay, 1);
+Set($DefaultQueue, 'GeneralRemediation');
+
+# Define custom email subject
+Set($DashboardSubject, "Notification about vulnerabilities for remediation");
+
+# Define different subjects for email notification
+Set(%DashboardSubscriptionEmailSubjects,
+ 'Security Findings Requiring Your Attention' => 'Notification about vulnerabilities for remediation',
+ 'CISO Daily Notification' => 'Notification about vulnerabilities waiting for exception approval',
+ 'Approval of exceptions for vulnerabilities in remediation' => 'Approval of exceptions for vulnerabilities in remediation',
+ 'My Tickets In Escalation' => 'Notification about vulnerabilities in escalation',
+ 'Escalation Contacts Report' => 'Notification about vulnerabilities in escalation',
+);
+
+# This setting requires RT-Extension-Announce v1.02
+Set($RTAnnounceAllowHTML, 1);
+
+Set(%MandatoryOnTransition,
+ 'GeneralRemediation' => {
+ '* -> reassign_pending' => [ 'Content' ],
+ '* -> support_requested' => [ 'Content' ],
+ '* -> reassign_pending' => [ 'Content' ],
+ '* -> false_positive_requested' => [ 'Content' ],
+ '* -> reported_fixed' => [ 'Content' ],
+ '* -> exception_requested' => [ 'Content', 'CF.Exception ID', 'CF.Exception Source', ],
+ 'exception_requested -> open' => [ 'Content' ],
+ 'exception_requested -> exception_approved' => ['Content'],
+ },
+);
+
+Set(%ArticlesByStatus, 'open' => 'Open', 'exception_requested' => 'Exception Requested');
+
+Set( @DelegateRoles, 'Requestor', 'CCSO', 'CISOs', 'CISO', 'ISO', 'Asset Owner', 'Proposed Owner', 'Cc', 'AdminCc', 'Escalation Contacts', 'Asset Manager', 'Application Manager', 'Application Owner', 'Security Coordinator', 'Manager of Ticket Owner', 'Ticket Owner Representatives', 'Service Owner', 'Cybersecurity Officer', 'Business ISO', 'Business CISO', 'Business Cybersecurity Officer', 'Business CCSO', 'Country Cybersecurity Officer', 'Country Coordinator', 'ISO Delegation', 'CISO Delegation' );
+Set(@SyncCISOGroupExceptions, ( 'VURIOUS_Notifications', 'Z000GHIU_CISO', 'Z0043KZV_CISO', 'Z000GHIU_ADMIN', 'DEMO_CISO', 'DEMO_CISO_Delegates' ));
+
+Set($DateTimeFormat, { Format => "ISOTZ", Seconds => 0 });
+
+Set($DefaultSearchResultFormat, qq{
+'<b><a href="__WebPath__/Ticket/Display.html?id=__id__">__id__</a></b>/TITLE:#',
+'<b><a href="__WebPath__/Ticket/Display.html?id=__id__">__Subject__</a></b>/TITLE:Finding',
+'__CustomField.{Severity}__',
+'<a href="__WebPath__/Search/Simple.html?q=cf.%22Asset+ID%22%3A%22__CustomField.{Asset ID}__%22">__CustomField.{Asset Name}__</a>',
+Status,
+Owner,
+'__CustomRole.{CISO}__',
+'<small>__CreatedRelative__</small>',
+'<small>__LastUpdatedRelative__</small>',
+'__Due__',
+'__NEWLINE__',
+'__NBSP__',
+'__NBSP__',
+'__NBSP__',
+'<small><a href="__WebPath__/Search/Simple.html?q=cf.%22Asset+ID%22%3A%22__CustomField.{Asset ID}__%22">__CustomField.{Asset ID}__</a></small>',
+'__NBSP__',
+'__NBSP__',
+'__NBSP__',
+'__NBSP__',
+'__NBSP__',
+'__NBSP__'
+});
+
+Set(%FullTextSearch,
+ Enable => 1,
+ Indexed => 1,
+ IndexName => 'rt_fts_index',
+ CFIndexName => 'rt_fts_cf_index',
+ BothIndex => 'both',
+);
+
+# Show the count of tickets in saved searches (including dashboards)
+Set($ShowSearchResultCount, 1);
+
+# Adjust search order (default is increasing by ticket id)
+Set($DefaultSearchResultOrderBy, "LastUpdated");
+Set($DefaultSearchResultOrder, "DESC");
+
+# Populate custom Help menu
+Set(@HelpMenuItems,
+ { title => 'VURIOUS Landing Page', link => 'https://wiki.siemens.com/display/en/VURIOUS' },
+ { title => 'VURIOUS FAQ', link => 'https://wiki.siemens.com/x/BhpyCg' },
+ { title => 'VURIOUS Yammer Group', link => 'https://www.yammer.com/siemenscrosscollaboration/#/threads/inGroup?type=in_group&feedId=8314175488&view=all' },
+ { title => 'VURIOUS Initial Login Preferences', link => '?force_show_firstlogin=1' },
+);
+
+# Setting ShowUnreadMessageNotifications to 1 shows a message on top of a
+# ticket that there are unread/new replies in the ticket.
+Set($ShowUnreadMessageNotifications, 1 );
+
+Set(@ReferrerWhitelist, qw(vurious-dev.siemens.de:1443 vurious-dev.siemens.de:443));
+
+# Setting to blacklist users that can't be reassigned to, emails addresses and usernames can be specified
+Set(@ProposedOwnerBlacklist, 'notifications@vurious.de', 'unknown@vurious.de', 'unknown_CISO@vurious.de', 'vurious.infosec@siemens.com', 'css@vurious.de', 'cybersecurity-testing.ct@siemens.com', 'cyber_security_center.func@siemens-healthineers.com', 'Nobody', 'RT_System', 'azure@vurious.de', 'siemens@vurious.de', 'evosoft@vurious.de', 'aws@vurious.de', 'tcs@vurious.de', 'accenture@vurious.de');
+
+# Max number of tickets to build links for Prev, Next, First, Last navigation.
+# We set to a low number to increase speed.
+# If the full result set is larger than this number, RT will omit the Last link
+# in the menu which is acceptable if there is speed increase
+Set( $TicketsItemMapSize, 50 );
+
+Set( $SiemensRTServerName, "DEV-P" );
+
+# Define HomepageComponents
+#
+# Make sure that all our email files under /opt/rt5/local/html/Elements are 'registered' here!
+#
+# IMPORTANT: This variable was set/adjusted in file
+# /opt/rt5/local/plugins/RT-Site-Siemens/etc/HomepageComponents_Config.pm
+# Starting with RT-Site-Siemens 0.50, this file has been removed by BPS.
+# Adjustments to HomepageComponents must be done in code below.
+#
+# IMPORTANT: There was an issue related to this variable (pre 0.50); if we set
+# this variable, then we saw an error message in RT at a glance under
+# Dashboards section ("Invalid portlet DashboardsInvalid portlet")
+# This error was because core portlets were removed with the previous config.
+# The code below fixes the problem.
+
+# Set initial default allowed portlets, copied from RT_Config.pm
+Set($HomepageComponents, [.qw(QuickCreate QueueList MyAdminQueues MySupportQueues MyReminders RefreshHomepage Dashboards SavedSearches FindUser MyAssets FindAsset)]);
+
+# Now add more custom portlets
+push @$HomepageComponents, 'DashboardEmailTextEscalationOwner', 'AssetsWithActiveTickets', 'AssetsWithMyActiveTickets', 'AssetsWithCISOActiveTickets', 'DashboardEmailText', 'DashboardCISOEmailText', 'DashboardEmailTextEscalations';
+
+# Set the list of available languages for the user to choose from for Dashboard sending (Email notification)
+# Requires RT-Site-Siemens-0.53
+Set( %DashboardEmailLanguages, ( English => 'EN', German => 'DE' ) );
+# Set the default
+Set( $DashboardEmailLanguage, 'EN' );
+
+#Sets the maximum size (in bytes) of attachments
+Set($MaxAttachmentSize, 30*1024*1024); # 30MiB
+
+Set( $DisablePasswordForAuthToken, 1);
+
+my $vulnerabilityBaseUrl = "https://ipinsplus.siemens.com/pub/QIDsearch";
+Set( %CustomFieldDisplayRules, (
+ "Asset ID" => {
+ "FormatterType" => "VaryByInventorySource",
+ "Templates" => {
+ "ITAM" => "https://itam.siemens.com/Web/Inventory/Details/__CustomField__",
+ "*" => "https://other.com/__CustomField__",
+ }
+ },
+ "Vulnerability ID" => {
+ "FormatterType" => "VaryByStartsWith",
+ "Templates" => {
+ "q" => "$vulnerabilityBaseUrl?scanproject=PLUS&id=__CustomField__",
+ "s" => "$vulnerabilityBaseUrl?scanproject=IPINS&id=__CustomField__",
+ "c" => "$vulnerabilityBaseUrl?scanproject=COMP_WIN2016&id=__CustomField__",
+ "*" => "$vulnerabilityBaseUrl?id=__CustomField__",
+ }
+ },
+));
+
+1;
diff --git a/etc/RT_SiteConfig.d/10_CF_Groupings.pm b/etc/RT_SiteConfig.d/10_CF_Groupings.pm
new file mode 100644
index 0000000000..b75cc0c050
--- /dev/null
+++ b/etc/RT_SiteConfig.d/10_CF_Groupings.pm
@@ -0,0 +1,21 @@
+# Custom Field Groupings
+
+Set(%CustomFieldGroupings,
+ 'RT::Ticket' => [.
+ 'Basics' => [ 'Asset Name', 'Target IP', 'Affected Object', ],
+ 'Remediation Instructions' => [ 'Generic Remediation Instructions', 'Additional Remediation Instructions', ],
+ 'Escalation Status' => [ 'Next Escalation Level', 'Date of Next Escalation', ],
+ 'Exception' => [ 'Exception Source', 'Exception ID', 'Granted Until', ],
+ 'Finding Details' => [. 'Subject', 'Generic Vulnerability Description', 'Severity', 'Severity Additional Info', 'Vulnerability ID', 'Reporting Source', 'Details', 'Port', 'References', ],
+ 'Asset Details' => [. 'Asset Name', 'Asset ID', 'Facility ID', 'Mac Address', 'Inventory Source', 'ACP Level', 'Critical Asset', 'Application UUID', 'Asset Country', 'Asset Location', 'Affected Object', 'Application Info', 'Asset Type', 'Asset Additional Info', 'Asset Subtype', 'Asset Owning Unit', 'Application Responsible Unit', 'Application Owning Unit', ],
+ 'Dates' => [. 'First Detected', 'Last Detected', 'Due', 'Reported as Fixed', 'Verified', 'Created', 'Starts', 'Started', 'Last Contact', 'Support requested on', 'Closed', 'Updated', ],
+ 'Internal Info' => [. 'Target IP', 'Service Provider', 'Provider Status', 'Last Ack. of Receipt', 'First Transfer to Provider', 'False Positive Granted Until', 'Asset ID IPINSplus', 'Original Ticket ID', 'Reassignment Count', 'CISO Notes', 'Provider Info', 'Source Type', 'Processing Log', 'Layer', ],
+ ],
+ 'RT::User' => [.
+ 'Certificate Validation' => [. 'SSL Client Subject DN1', 'SSL Client Issuer DN1', 'SSL Client Subject DN2', 'SSL Client Issuer DN2' ],
+ 'SCD Details' => [ 'ARE', 'Unit', 'Company', 'UserType', 'Sponsor', 'Manager' ],
+ 'Switch Users' => [ 'Switch Users Accounts' ],
+ ],
+);
+
+return 1;
diff --git a/etc/RT_SiteConfig.d/BulkActions_Config.pm b/etc/RT_SiteConfig.d/BulkActions_Config.pm
new file mode 100644
index 0000000000..2e5f3538cb
--- /dev/null
+++ b/etc/RT_SiteConfig.d/BulkActions_Config.pm
@@ -0,0 +1,95 @@
+# The Queue BulkActions is based on
+Set( $BulkActionsQueue, 'GeneralRemediation' );
+
+# What types of actions to create parent tickets for
+Set( $BulkActionParentQueue, 'Bulk Actions' );
+Set( $BulkActionTicketThreshold, 2 );
+Set( $BulkActionCreateParentTicketsForStatuses, [ 'support_requested', 'report_fixed', 'open' ]);
+#Set( $BulkActionCreateParentTicketsForActions, 'Request support', 'Report Fixed', 'Add Annotation' );
+
+# Actions not defined in Lifecycle
+Set(%BulkActionsExtraActions,
+ 'Document CISO Status' => {
+ update => 'Respond',
+ extra_params => { CISONotes => 1 },
+ },
+ 'Modify Cc' => {
+ update => 'ModifyCc',
+ },
+ 'Add Annotation' => {
+ update => 'Respond',
+ },
+ 'Internal Comment' => {
+ update => 'Comment',
+ },
+ 'Accept Ownership' => {
+ update => 'Steal',
+ },
+ 'Reject Ownership' => {
+ update => 'Respond',
+ extra_params => { DefaultStatus => 'open' },
+ },
+);
+
+Set(%BulkActionsExtraSearchQuery,
+ 'Re-open' => q{Status != '__Active__'},
+ 'Support not required anymore' => q{Status = 'support_requested'},
+ 'Request Exception' => q{Status = '__Active__' AND Status != 'exception_requested'},
+ 'Request Support' => q{Status = '__Active__'},
+ 'Re-assign' => q{Status = '__Active__'},
+ 'Report as False Positive' => q{Status = '__Active__'},
+ 'Report Fixed' => q{Status = '__Active__'},
+ 'Accept Ownership' => q{Status = 'reassign_pending' and 'CustomRole.{Proposed Owner}' = '__CurrentUser__'},
+ 'Reject Ownership' => q{Status = 'reassign_pending' and 'CustomRole.{Proposed Owner}' = '__CurrentUser__'},
+ 'Modify Cc' => q{Status = '__Active__'},
+ 'Confirm Valid Exception' => q{Status = '__Active__' AND 'CF.{Exception Source}' != 'EH Tool'},
+);
+
+# groups are checked in order, so actions of the first group current user is
+# in will be used
+
+Set(@BulkActionsGroupActions,
+ 'CISOs' => [ 'Reject Exception', 'Confirm Valid Exception', 'Modify Cc' ],
+ 'Core Team' => [.
+ 'Re-open',
+ 'Support not required anymore',
+ 'Request Exception',
+ 'Request support',
+ 'Re-assign',
+ 'Report as False Positive',
+ 'Report Fixed',
+ 'Accept Ownership',
+ 'Reject Ownership',
+ 'Add Annotation',
+ 'Modify Cc',
+ 'Close',
+ 'Cancel False Positive',
+ 'Take Support',
+ 'Verify',
+ 'Clearing House',
+ 'Confirm as False Positive',
+ 'Internal Comment',
+ 'Escalation 1',
+ 'Escalation 2',
+ 'Escalation 3',
+ 'Special Escalation',
+ ],
+ 'Everyone' => [.
+ 'Document CISO Status',
+ 'Re-open',
+ 'Support not required anymore',
+ 'Request Exception',
+ 'Request support',
+ 'Re-assign',
+ 'Report as False Positive',
+ 'Report Fixed',
+ 'Accept Ownership',
+ 'Reject Ownership',
+ 'Add Annotation',
+ 'Modify Cc',
+ ],
+);
+
+Set( $BulkActionsMaxTickets, 500 );
+
+1;
diff --git a/etc/RT_SiteConfig.d/DeactivateSettingsOnPreferences.pm b/etc/RT_SiteConfig.d/DeactivateSettingsOnPreferences.pm
new file mode 100644
index 0000000000..3cfb3e0761
--- /dev/null
+++ b/etc/RT_SiteConfig.d/DeactivateSettingsOnPreferences.pm
@@ -0,0 +1,2 @@
+# Deactivate inline edit Globally
+Set( $InlineEdit, 0 );
diff --git a/etc/RT_SiteConfig.d/Due_Config.pm b/etc/RT_SiteConfig.d/Due_Config.pm
new file mode 100644
index 0000000000..45c1b82657
--- /dev/null
+++ b/etc/RT_SiteConfig.d/Due_Config.pm
@@ -0,0 +1,26 @@
+Set(%DueBySeverity,
+ ( default => { High => '+ 60 days', Medium => '+ 90 days', Low => '+ 90 days' },
+ #################################################################################
+ # IMPORTANT: If you do changes, a APACHE restart is required.
+ #
+ # Add more severity configurations using requestor username or emailaddress as keys:
+
+ # PenTests by CYS Cybersecurity Testing
+ 'Z003EWCH' => { High => '+ 60 days', Medium => '+ 90 days', Low => '+ 90 days' },
+
+ # Sharepoint findings provided by Sebastian Merk
+ 'House Keeping' => { High => '+ 30 days', Medium => '+ 60 days', Low => '+ 60 days' },
+
+ # Coporate Scan Service (used for importing findings w/o a due date set)
+ 'Corporate Scan Service' => { High => '+ 10 days', Medium => '+ 21 days', Low => '+ 35 days' },
+
+ # CLOUD findings from CSM module via REST API
+ 'Z0048UDR' => { High => '+ 10 days', Medium => '+ 21 days', Low => '+ 35 days' },
+
+ # CLOUD findings from Turbot module via CSV Import
+ 'DI IT Cloud Security Service' => { High => '+ 28 days', Medium => '+ 56 days', Low => '+ 84 days' },
+
+ )
+);
+
+1
diff --git a/etc/RT_SiteConfig.d/EHT_Token.pm b/etc/RT_SiteConfig.d/EHT_Token.pm
new file mode 100644
index 0000000000..9556545bb9
--- /dev/null
+++ b/etc/RT_SiteConfig.d/EHT_Token.pm
@@ -0,0 +1,57 @@
+# Set the correct command to sign and encrypt EHT messages
+# Note: if you want to see the EHT token in plaintext, simply remove (or comment out) the Set command
+#Set(@SiemensTokenCommands,
+ #[. qw{openssl cms -sign -binary -signer /opt/rt5/var/data/smime/vurious.infosec@siemens.com.encryption.pem -inkey /opt/rt5/var/data/smime/vurious.infosec@siemens.com.encryption.pem -md sha256 -nodetach -outform PEM} ],
+ #[ qw{openssl cms -encrypt -recip /opt/rt5/var/data/smime/vurious.infosec@siemens.com.encryption.pem -recip /opt/rt5/var/data/smime/isec-workflow.siemens.com.cer -outform PEM} ],
+#);
+
+### Added by Marco Jacinto on 2021-10-21 to integrate all .pm etc directory files on each extension into only RT_SiteConfig.d directory ###
+### acquired from 'RT-Site-Siemens' plugin ###
+Set(%TicketTokenFieldMapping,
+ token_version => '0.1',
+ v_ticket_id => sub { sprintf( '%011d', $_[0]->id ) },
+ v_generated_for => sub { $_[0]->CurrentUser->Name },
+ v_generate_time => sub {
+ my $date = RT::Date->new( RT->SystemUser );
+ $date->SetToNow;
+ $date->W3CDTF( Timezone => 'UTC' );
+ },
+ v_ticket_owner => sub { $_[0]->OwnerObj->Name },
+ asset_manager => sub {
+ my $role = RT::CustomRole->new(RT->SystemUser);
+ $role->Load('Asset Manager');
+ my $manager = $_[0]->RoleGroup($role->GroupType)->UserMembersObj( Recursively => 0 )->First;
+ $manager ? $manager->Name : 'undef';
+ },
+ asset_owner => sub {
+ my $role = RT::CustomRole->new(RT->SystemUser);
+ $role->Load('Asset Owner');
+ my $owner = $_[0]->RoleGroup($role->GroupType)->UserMembersObj( Recursively => 0 )->First;
+ $owner ? $owner->Name : 'undef';
+ },
+ asset_id => sub { $_[0]->FirstCustomFieldValue('Asset ID') },
+ asset_name => sub { $_[0]->FirstCustomFieldValue('Asset Name') },
+ asset_id_source => sub { $_[0]->FirstCustomFieldValue('Inventory Source') },
+ vuln_severity => sub { $_[0]->FirstCustomFieldValue('Severity') },
+ vuln_source => sub {
+ my $requestor = $_[0]->Requestors->UserMembersObj( Recursively => 0 )->First;
+ $requestor ? $requestor->Name : 'undef';
+ },
+ vuln_id => sub { $_[0]->FirstCustomFieldValue('Vulnerability ID') },
+ vuln_name => sub { $_[0]->Subject },
+ vuln_due_date => sub { $_[0]->DueObj->W3CDTF( Timezone => 'UTC' ) },
+ isec_ciso => sub {
+ my $role = RT::CustomRole->new(RT->SystemUser);
+ $role->Load('CISO');
+ my $ciso = $_[0]->RoleGroup($role->GroupType)->UserMembersObj( Recursively => 0 )->First;
+ $ciso ? $ciso->Name : 'undef';
+ },
+ isec_isos => sub {
+ my $role = RT::CustomRole->new(RT->SystemUser);
+ $role->Load('ISO');
+ my $isos = $_[0]->RoleGroup($role->GroupType)->UserMembersObj( Recursively => 0 );
+ join ';', map { $_->Name } @{ $isos->ItemsArrayRef };
+ },
+);
+
+1;
diff --git a/etc/RT_SiteConfig.d/Lifecycle_Config.pm b/etc/RT_SiteConfig.d/Lifecycle_Config.pm
new file mode 100644
index 0000000000..5d720e8607
--- /dev/null
+++ b/etc/RT_SiteConfig.d/Lifecycle_Config.pm
@@ -0,0 +1,203 @@
+# Lifecycle_Config.pm
+# will be under /opt/rt5/local/plugins/RT-Site-Siemens/etc
+
+# apache restart is required after changes:
+# sudo /usr/bin/systemctl restart webhttpd@vuriousq443.service
+
+=pod
+
+# Debugging for Chris...
+use strict;
+use warnings;
+use Data::Dumper;
+
+our %Lifecycles;
+
+sub Set {
+ my %h = @_;
+ print Dumper \%h;
+}
+
+=cut
+
+Set(%Lifecycles,
+vulnerability => {
+ initial => [ qw( open ) ], # loc_qw
+ active => [. qw( reassign_asset reassign_pending clearing false_positive_requested exception_requested support_requested escalation_level_1 escalation_level_2 escalation_level_3 escalation_special) ], # loc_qw
+ inactive => [. qw( exception_approved false_positive_approved reported_fixed verified archived unknown auto_closed closed deleted) ], # loc_qw
+ defaults => {
+ on_create => 'open',
+ approved => 'open',
+ denied => 'closed',
+ reminder_on_open => 'open',
+ reminder_on_resolve => 'closed',
+ },
+ rights => {
+ # Added by Marco Jacinto (2021-06-07) - only for Core Team and SuperUsers groups
+ # Needed to do it from a hardcoded status to another hardcoded status because it would cause conflict with the right 'SetFixed' ('CancelReassignAsset' would be overwriten by 'SetFixed')
+ 'reassign_asset -> open' => 'CancelReassignAsset',
+ 'reassign_asset -> reported_fixed' => 'CancelReassignAsset',
+ 'reassign_asset -> unknown' => 'CancelReassignAsset',
+ 'reassign_asset -> auto_closed' => 'CancelReassignAsset',
+ 'reassign_asset -> closed' => 'CancelReassignAsset',
+ 'reassign_asset -> clearing' => 'CancelReassignAsset',
+
+ # Changed by Marco Jacinto (2021-06-07) - because reassign_asset is only for Core Team and SuperUsers groups
+ '* -> reported_fixed' => 'SetFixed',
+
+ '* -> verified' => 'SetVerified',
+ '* -> unknown' => 'SetUnknown',
+ '* -> support_requested' => 'SetSupportRequested',
+ '* -> reassign_pending' => 'SetReassigned',
+ '* -> reassign_asset' => 'ReassignAsset',
+ '* -> clearing' => 'SetClearing',
+ '* -> exception_requested' => 'SetExceptionRequested',
+ '* -> exception_approved' => 'SetExceptionApproved',
+ 'exception_requested -> open' => 'RejectException',
+ 'exception_approved -> open' => 'RejectException',
+ 'reassign_pending -> open' => 'CancelReassign',
+
+ 'exception_requested -> exception_approved' => 'CISO_ExceptionApproved',
+ # The following requires adjustment to display exception related
+ # fields in the Reply page also for the CISO/ISO.
+ # 20200225
+ # Commented out until we get new code on DEV.
+ #'open -> exception_approved' => 'CISO_ExceptionApproved',
+ #'escalation_level_1 -> exception_approved' => 'CISO_ExceptionApproved',
+ #'escalation_level_2 -> exception_approved' => 'CISO_ExceptionApproved',
+ #'escalation_level_3 -> exception_approved' => 'CISO_ExceptionApproved',
+ #'escalation_special -> exception_approved' => 'CISO_ExceptionApproved',
+ '* -> false_positive_requested' => 'SetFalsePositiveRequested',
+ '* -> false_positive_approved' => 'SetFalsePositiveApproved',
+ '* -> escalation_level_1' => 'SetEscalation',
+ '* -> escalation_level_2' => 'SetEscalation',
+ '* -> escalation_level_3' => 'SetEscalation',
+ '* -> escalation_special' => 'SetEscalation',
+ '* -> closed' => 'CloseTicket',
+ '* -> auto_closed' => 'CloseTicket',
+ '* -> archived' => 'ArchiveTicket',
+ 'escalation_level_1 -> open' => 'CancelEscalation',
+ 'escalation_level_2 -> open' => 'CancelEscalation',
+ 'escalation_level_3 -> open' => 'CancelEscalation',
+ 'escalation_special -> open' => 'CancelEscalation',
+ '* -> deleted' => 'DeleteTicket',
+ # ModifyStatus allows status transitions in general (according to
+ # transitions hash table below), except an additional right above is
+ # not granted explicitely.
+ '* -> *' => 'ModifyStatus',
+ },
+ transitions => {
+ # The following transition is required for ticket creation
+ # Changed by Marco Jacinto (2021-07-12) - added status change to auto_closed for all status transitions
+ '' => [ qw(open) ],
+ open => [. qw(exception_approved reported_fixed verified unknown support_requested reassign_pending exception_requested exception_approved false_positive_requested false_positive_approved escalation_level_1 escalation_special deleted clearing reassign_asset auto_closed) ],
+ reported_fixed => [ qw(open verified unknown auto_closed deleted) ],
+ verified => [ qw(auto_closed closed deleted) ],
+ unknown => [ qw(open reported_fixed auto_closed closed deleted reassign_asset) ],
+ # Changed by Marco Jacinto (2021-03-15) - added status change to unknown
+ support_requested => [. qw(open reported_fixed reassign_pending clearing false_positive_requested false_positive_approved deleted reassign_asset unknown auto_closed) ],
+ # Changed by Thomas Braun (2021-08-13) - added status change to false_positive_approved
+ reassign_pending => [ qw(false_positive_approved open reported_fixed clearing unknown deleted reassign_asset auto_closed) ],
+ clearing => [ qw(open unknown auto_closed closed deleted) ],
+ # Changed by Thomas Braun (2021-08-13) - added status change to false_positive_approved
+ exception_requested => [ qw(false_positive_approved open reported_fixed exception_approved deleted reassign_asset auto_closed) ],
+ # Changed by Thomas Braun (2021-08-13) - added status change to false_positive_approved
+ exception_approved => [ qw(false_positive_approved open reported_fixed deleted unknown reassign_asset auto_closed) ],
+ # Changed by Marco Jacinto (2021-03-15) - added status change to unknown
+ # Changed by Marco Jacinto (2021-03-16) - added status change to reassign_pending
+ false_positive_requested => [ qw(open reported_fixed false_positive_approved deleted reassign_asset unknown reassign_pending auto_closed) ],
+ # Changed by Marco Jacinto (2021-04-16) - added status change to unknown
+ # Changed by Thomas Braun (2021-08-13) - added status change to open
+ false_positive_approved => [ qw(reported_fixed closed deleted reassign_asset unknown auto_closed open) ],
+ # Changed by Thomas Braun (2021-08-13) - added status change to false_positive_approved
+ escalation_level_1 => [. qw(false_positive_approved exception_approved open reported_fixed unknown support_requested reassign_pending false_positive_requested exception_requested escalation_level_2 deleted reassign_asset auto_closed) ],
+ # Changed by Thomas Braun (2021-08-13) - added status change to false_positive_approved
+ escalation_level_2 => [. qw(false_positive_approved exception_approved open reported_fixed unknown support_requested reassign_pending false_positive_requested exception_requested escalation_level_3 deleted reassign_asset auto_closed) ],
+ # Changed by Thomas Braun (2021-08-13) - added status change to false_positive_approved
+ escalation_level_3 => [. qw(false_positive_approved exception_approved open reported_fixed unknown support_requested reassign_pending false_positive_requested exception_requested deleted reassign_asset auto_closed) ],
+ # Changed by Thomas Braun (2021-08-13) - added status change to false_positive_approved
+ escalation_special => [. qw(false_positive_approved exception_approved open reported_fixed support_requested reassign_pending false_positive_requested exception_requested deleted reassign_asset auto_closed) ],
+ auto_closed => [ qw(closed archived deleted auto_closed) ],
+ closed => [ qw(archived deleted auto_closed) ],
+ archived => [ qw(deleted auto_closed) ],
+ deleted => [. qw(open reported_fixed verified unknown support_requested reassign_pending clearing exception_requested exception_approved false_positive_requested false_positive_approved escalation_level_1 escalation_level_2 escalation_level_3 escalation_special auto_closed closed archived) ],
+ # Added by Marco Jacinto (2021-06-07) - added so we can move out of status reassign_asset
+ # Changed by Thomas Braun (2021-08-13) - added status change to false_positive_approved
+ reassign_asset => [qw(false_positive_approved open reported_fixed unknown auto_closed closed clearing)],
+ },
+
+# New Actions have to be added to TicketActionButtons_Config.pm for Quick-Actions menue
+ actions => [.
+ # Added by Marco Jacinto (2021-06-07) - added so we can have entry in user menu from reassign_asset to open
+ 'reassign_asset -> open' => { label => 'Re-open', update => 'Respond' }, # loc{label}
+ 'unknown -> open' => { label => 'Re-open', update => 'Respond' }, # loc{label}
+ 'escalation_level_1 -> open' => { label => 'Reset to open', update => 'Respond' }, # loc{label}
+ 'escalation_level_2 -> open' => { label => 'Reset to open', update => 'Respond' }, # loc{label}
+ 'escalation_level_3 -> open' => { label => 'Reset to open', update => 'Respond' }, # loc{label}
+ 'escalation_special -> open' => { label => 'Reset to open', update => 'Respond' }, # loc{label}
+ '* -> closed' => { label => 'Close', update => 'Comment' }, # loc{label}
+ 'closed -> open' => { label => 'Re-open', update => 'Respond' }, # loc{label}
+ 'false_positive_requested -> open' => { label => 'Cancel False Positive', update => 'Respond' }, # loc{label}
+ 'exception_requested -> open' => { label => 'Cancel / Reject Exception', update => 'Respond' }, # loc{label}
+ # The following will supersede the more specific one
+ # (exception_requested -> exception_approved) below. But first we need
+ # to get code adjustments on DEV (see 20200225 above).
+ #'* -> exception_approved' => { label => 'Confirm Valid Exception', update => 'Respond' }, # loc{label}
+ 'exception_requested -> exception_approved' => { label => 'Confirm Valid Exception', update => 'Respond' }, # loc{label}
+ 'exception_approved -> open' => { label => 'Cancel Exception', update => 'Respond' }, # loc{label}
+ 'support_requested -> open' => { label => 'Support not required anymore', update => 'Respond' }, # loc{label}
+ 'reported_fixed -> open' => { label => 'Re-open', update => 'Respond' }, # loc{label}
+ 'reassign_pending -> open' => { label => 'Cancel Reassign', update => 'Respond' }, # loc{label}
+ 'clearing -> open' => { label => 'Cancel Clearing', update => 'Respond' }, # loc{label}
+ '* -> exception_requested' => { label => 'Request Exception', update => 'Respond' }, # loc{label}
+ '* -> support_requested' => { label => 'Request support', update => 'Respond'}, # loc{label}
+ '* -> reassign_pending' => { label => 'Re-assign', update => 'Respond' }, # loc{label}
+ '* -> false_positive_requested' => { label => 'Report as False Positive', update => 'Respond' }, # loc{label}
+ '* -> verified' => { label => 'Verify', update => 'Respond' }, # loc{label}
+ '* -> reported_fixed' => { label => 'Report Fixed', update => 'Respond' }, # loc{label}
+ '* -> clearing' => { label => 'Clearing House', update => 'Respond' }, # loc{label}
+ '* -> false_positive_approved' => { label => 'Confirm as False Positive', update => 'Respond' }, # loc{label}
+ '* -> escalation_level_1' => { label => 'Escalation 1' }, # loc{label}
+ '* -> escalation_level_2' => { label => 'Escalation 2' }, # loc{label}
+ '* -> escalation_level_3' => { label => 'Escalation 3' }, # loc{label}
+ '* -> escalation_special' => { label => 'Special Escalation' }, # loc{label}
+ '* -> deleted' => { label => 'Delete Ticket'}, #loc{label}
+ '* -> archived' => { label => 'Archive Ticket'}, #loc{label}
+ ],
+},
+
+__maps__ => {
+ 'default -> vulnerability' => {
+ 'new' => 'open',
+ 'resolved' => 'closed',
+ 'open' => 'open',
+ 'rejected' => 'closed',
+ 'stalled' => 'closed',
+ 'deleted' => 'deleted',
+ },
+ 'vulnerability -> default' => {
+ 'closed' => 'resolved',
+ 'open' => 'open',
+ 'reported_fixed' => 'open',
+ 'verified' => 'resolved',
+ 'unknown' => 'stalled',
+ 'support_requested' => 'open',
+ 'reassign_pending' => 'stalled',
+ 'clearing' => 'stalled',
+ 'exception_requested' => 'open',
+ 'exception_approved' => 'open',
+ 'false_positive_requested' => 'open',
+ 'false_positive_approved' => 'open',
+ 'escalation_level_1' => 'open',
+ 'escalation_level_2' => 'open',
+ 'escalation_level_3' => 'open',
+ 'escalation_special' => 'open',
+ 'auto_closed' => 'resolved',
+ 'closed' => 'resolved',
+ 'archived' => 'deleted',
+ 'deleted' => 'deleted',
+ },
+ });
+
+# vim: tw=0
+1;
diff --git a/etc/RT_SiteConfig.d/REST2.pm b/etc/RT_SiteConfig.d/REST2.pm
new file mode 100644
index 0000000000..83530b868b
--- /dev/null
+++ b/etc/RT_SiteConfig.d/REST2.pm
@@ -0,0 +1,3 @@
+Set( $REST2JobsThreshold, { TicketsBulk => 2 } );
+
+1;
diff --git a/etc/RT_SiteConfig.d/ServiceProvider.pm b/etc/RT_SiteConfig.d/ServiceProvider.pm
new file mode 100644
index 0000000000..108ac92e9a
--- /dev/null
+++ b/etc/RT_SiteConfig.d/ServiceProvider.pm
@@ -0,0 +1,207 @@
+# Settings for Service Provider Sync script
+#Set( $ServiceProviderCert, "/opt/rt5/etc/pki/vurious.siemens.de.crt" );
+Set( $ServiceProviderCert, "/opt/rt5/etc/pki/vurious-dev.siemens.de.key" );
+#Set( $ServiceProviderKey, "/opt/rt5/etc/pki/vurious.siemens.de.key" );
+Set( $ServiceProviderKey, "/opt/rt5/etc/pki/vurious-dev.siemens.de.key" );
+Set(%ServiceProvider,
+ ( Atos => {
+ Token => $ATOS_TOKEN,
+ URL => 'https://itcdb.it-solutions.atos.net/SPI/dev/api/ticket',
+ #URL => 'https://itcdb.it-solutions.atos.net/SPI/UploadJson/in/',
+
+#################################################################################################################################
+############# Query for PROD usage: ##################################
+### Query used for json-processing only:
+#QueryCreate => q{Queue = 'GeneralRemediation' AND Owner = 'ATOS' AND ( Status = 'open' OR Status like 'escalation%' )},
+#QueryCreate => q{Queue = 'GeneralRemediation' AND Owner = 'ATOS' AND Status = '__Active__' },
+#QueryCreate => q{Queue = 'GeneralRemediation' AND id = 905158 },
+
+## OR new SPI: ##
+
+####### Select query used in create mode
+#QueryCreate => q{Queue = 'GeneralRemediation' AND Owner = 'ATOS' AND 'CF.{First Transfer to Provider}' is NULL AND ( Status = 'escalation_level_1' OR Status = 'escalation_level_2' OR Status = 'escalation_level_3' OR Status = 'escalation_special' OR Status = 'exception_approved' OR Status = 'exception_requested' OR Status = 'false_positive_requested' OR Status = 'open' )},
+# New query we use to translate all ticket status to open
+QueryCreate => q{Queue = 'GeneralRemediation' AND Owner = 'ATOS' AND 'CF.{First Transfer to Provider}' is NULL AND ( Status = 'escalation_level_1' OR Status = 'escalation_level_2' OR Status = 'escalation_level_3' OR Status = 'escalation_special' OR Status = 'open' )},
+
+
+########### Select query used in update mode
+QueryUpdate => q{Queue = 'GeneralRemediation' AND LastUpdated > 'CF.{Last Ack. of Receipt}' AND 'CF.{First Transfer to Provider}' IS not NULL AND ( Status = 'unknown' OR Status = 'escalation_level_1' OR Status = 'escalation_level_2' OR Status = 'escalation_level_3' OR Status = 'escalation_special' OR Status = 'exception_approved' OR Status = 'exception_requested' OR Status = 'false_positive_approved' OR Status = 'false_positive_requested' OR Status = 'open' OR Status = 'verified' OR Status = 'reported_fixed' ) AND Owner = 'ATOS' },
+ #QueryUpdate => q{Queue = 'GeneralRemediation' AND id = 732892},
+
+###############################################################################################################################
+
+ # Every ticket which will be send to the Service Provider in CREATE mode will be changed:
+ # - status will be set to open
+ # - due date will be changed based on DUE_config.pm
+ # - a Reply will be added to the ticket like 'Ticket transferred first time to Service Provider 'ATOS' with status ‘open’ and due date ‘2021xxxxx'
+ # Only when the transfer to the SP was successfull will the fields in VURIOUS updated/changed.
+ ReopenAndCorrespondOnCreate => 1,
+
+ # Status which is send to ATOS when a ticket was reassigned in VURIOUS and the service provider is not responsible anymore
+ # IMPORTANT: To use that feature, You need to run rt-sync with additional parameter: --send-reassigned
+ #StatusForReassignedTickets => 'closed',
+
+
+ ValidStatuses => [.'unknown', 'closed', 'escalation_level_1', 'escalation_level_2', 'escalation_level_3',
+ 'escalation_special', 'exception_approved', 'exception_requested',
+ 'false_positive_approved', 'false_positive_requested', 'open',
+ 'reassign_rejected', 'verified', 'reported_fixed', 'auto_closed'],
+ FieldMapping => {
+ TicketId => { 'RT-Field' => 'id', Value => 'id' },
+ Status => {
+ 'RT-Field' => 'Status',
+ Value => sub {
+ my %map = ( unknown => 'closed', auto_closed => 'closed', );
+ my $status = $_[0]->Status;
+ # If a mapping is found, return the mapped value; otherwise return the original status value
+ return $map{$status} || $status;
+ },
+ },
+ DueDate => { 'RT-Field' => 'Due', Value => sub { $_[0]->DueObj->ISO( Time => 0, Timezone => 'UTC' ) } },
+
+ DetectionDateFirst => { 'RT-Field' => 'First Detected', Value => 'First Detected' },
+ DetectionDateLast => { 'RT-Field' => 'Last Detected', Value => 'Last Detected' },
+
+ VulnerabilityDetails => { 'RT-Field' => 'Details', Value => 'Details' },
+ VulnerabilitySource => { 'RT-Field' => 'Source Type', Value => 'Source Type' },
+ VulnerabilityName => { 'RT-Field' => 'Subject', Value => 'Subject' },
+ VulnerabilityId => { 'RT-Field' => 'Vulnerability ID', Value => 'Vulnerability ID' },
+ VulnerabilityDescription => { 'RT-Field' => 'Generic Vulnerability Description', Value => 'Generic Vulnerability Description' },
+
+ RemediationStepsGeneric => { 'RT-Field' => 'Generic Remediation Instructions', Value => 'Generic Remediation Instructions' },
+ RemediationStepsSpecific => { 'RT-Field' => 'Additional Remediation Instructions', Value => 'Additional Remediation Instructions' },
+ HighPrio => { 'RT-Field' => 'Critical Asset', Value => 'Critical Asset' },
+
+ Severity => { 'RT-Field' => 'Severity', Value => 'Severity' },
+ #EscalationLevel => { 'RT-Field' => '', Value => '' },
+
+ #Comment: Will be automatically a part of the export WHEN there is something identified/stored in providercommenttx @tb: Updates based on excel T200804145342
+
+ AffectedAssetName => { 'RT-Field' => 'Asset Name', Value => 'Asset Name' },
+ AffectedAssetPort => { 'RT-Field' => 'Port', Value => 'Port' },
+ AffectedLayer => { 'RT-Field' => 'Layer', Value => 'Layer' },
+ AssetLastIP => { 'RT-Field' => 'Target IP', Value => 'Target IP' },
+ AffectedObject => { 'RT-Field' => 'Affected Object', Value => 'Affected Object' },
+ ExceptionGrantedUntil => { 'RT-Field' => 'Granted Until', Value => 'Granted Until' },
+ ProviderInfo => { 'RT-Field' => 'Provider Info', Value => 'Provider Info' },
+
+ # Only for GVM, not part of REST API
+ # AssetID => { 'RT-Field' => 'Asset ID', Value => 'Asset ID' },
+ # AssetSource => { 'RT-Field' => 'Inventory Source', Value => 'Inventory Source' },
+
+ # ATOS Purge project:
+ #InternalAssetId => { 'RT-Field' => 'Asset ID IPINSplus', Value => 'Asset ID IPINSplus' },
+
+
+ },
+ },
+ )
+);
+
+# <%REST2ServiceProviderSettings> defines general custom settings to manage REST2 behavior.
+#
+# The keys are RT usernames. Incoming REST2 calls are associated
+# with a user account, which will then be used when checking for a configuration.
+#
+# see docs: RT-Site-Siemens-REST2/lib/RT/Site/Siemens/REST2.pm,
+# docs + example: RT-Site-Siemens-REST2/etc/REST2_Config.pm.example)
+# --> INCOMING: When the service provider call our REST API, those settings are used
+Set( %REST2ServiceProviderSettings,
+ 'ATOS' => {
+ # the maximum number of tickets allowed in one bulk call
+ 'MaxTickets' => '400',
+
+ # When SimplifiedMessages is set to 1, the response messages when a ticket was changed will be more simple (return messages of main changes only)
+ 'SimplifiedMessages' => 1,
+
+ # Increase 'CF.Reassignment Count'; Several options are possible:
+ # # Case [0,0 -> IncreaseReassignmentCount = 0, IncreaseReassignmentCountForServiceProvider = 0]
+ # * No increasements of reassignment count
+ #
+ # # Case [0,1]
+ # * GUI --> <unchanged>
+ # * rt-siemens-import-csv --> <unchanged>
+ # * rt-import-ipins --> <unchanged>
+ # * rt-crontool-parallel --> <unchanged>
+ # * REST2 tickets/bulk wrapper endpoint --> ++
+ # * REST2 other endpoints --> <unchanged>
+ #
+ # # Case [1,0]
+ # * GUI --> ++
+ # * rt-siemens-import-csv --> <unchanged>
+ # * rt-import-ipins --> <unchanged>
+ # * rt-crontool-parallel --> <unchanged>
+ # * REST2 tickets/bulk wrapper endpoint --> <unchanged>
+ # * REST2 other endpoints --> ++
+ #
+ # # Case [1,1]
+ # * GUI --> ++
+ # * rt-siemens-import-csv --> <unchanged>
+ # * rt-import-ipins --> <unchanged>
+ # * rt-crontool-parallel --> <unchanged>
+ # * REST2 tickets/bulk wrapper endpoint --> ++
+ # * REST2 other endpoints --> ++
+ IncreaseReassignmentCountForServiceProvider => 1,
+
+ # External Status logic when e.g. ATOS sends a status and the VURIOUS internal actions:
+ # - Status: Status which will be set when a proposed owner is delivered
+ # - Owner: Owner which will be set when NO proposed owner will be delieverd
+ # - CISO: CISO which will be set when NO proposed owner will be delieverd
+ # - StatusWithProposedOwner: Status which is set WHEN a proposed owner is delivered
+ # - SetDue: Activate (1) / Deactivate (0) due date calculation when ticket was reassigned
+ # - ProposedOwnerToResetReassignmentCount: When this account is used as proposed owner, the reassignment
+ # count will be cleared (and then ticket will be updated by ITAM updater,
+ # BUT it will add again ATOS as owner so DO NOT use it right now)
+ #
+ # ==> Those full settings require latest REST2-Extension
+ StatusRules => {
+ reassign_finding => {
+ #Status => 'clearing',
+ Owner => 'UNKNOWN',
+ CISO => 'Unknown CISO',
+ #StatusWithProposedOwner => 'open',
+ SetDue => 0,
+ #ProposedOwnerToResetReassignmentCount => 'unknown@vurious.de',
+ },
+ reassign_asset => {
+ Status => 'reassign_asset',
+ Owner => 'Clearing House',
+ CISO => 'Unknown CISO',
+ },
+ },
+ },
+);
+
+
+ # Increase 'CF.Reassignment Count'; Several options are possible:
+ # # Case [0,0 -> IncreaseReassignmentCount = 0, IncreaseReassignmentCountForServiceProvider = 0]
+ # * No increasements of reassignment count
+ #
+ # # Case [0,1]
+ # * GUI --> <unchanged>
+ # * rt-siemens-import-csv --> <unchanged>
+ # * rt-import-ipins --> <unchanged>
+ # * rt-crontool-parallel --> <unchanged>
+ # * REST2 tickets/bulk wrapper endpoint --> ++
+ # * REST2 other endpoints --> <unchanged>
+ #
+ # # Case [1,0]
+ # * GUI --> ++
+ # * rt-siemens-import-csv --> <unchanged>
+ # * rt-import-ipins --> <unchanged>
+ # * rt-crontool-parallel --> <unchanged>
+ # * REST2 tickets/bulk wrapper endpoint --> <unchanged>
+ # * REST2 other endpoints --> ++
+ #
+ # # Case [1,1]
+ # * GUI --> ++
+ # * rt-siemens-import-csv --> <unchanged>
+ # * rt-import-ipins --> <unchanged>
+ # * rt-crontool-parallel --> <unchanged>
+ # * REST2 tickets/bulk wrapper endpoint --> ++
+ # * REST2 other endpoints --> ++
+Set($IncreaseReassignmentCount , 1);
+
+
+
+1;
diff --git a/etc/RT_SiteConfig.d/TicketActionButtons_Config.pm b/etc/RT_SiteConfig.d/TicketActionButtons_Config.pm
new file mode 100644
index 0000000000..477f59c317
--- /dev/null
+++ b/etc/RT_SiteConfig.d/TicketActionButtons_Config.pm
@@ -0,0 +1,67 @@
+# - Actions which should be available as Quick-Actions
+# - Actions will be filtered based on rights/status transitions
+Set( @TicketActionButtons,
+ 'Report Fixed',
+ 'Close',
+ 'Request Exception',
+ 'Generate Exception Token',
+ 'Cancel Exception',
+ 'Cancel / Reject Exception',
+ 'Confirm Valid Exception',
+ 'Request support',
+ 'Support not required anymore',
+ 'Re-open',
+ 'Reset to open',
+ 'Report as False Positive',
+ 'Cancel False Positive',
+ 'Confirm as False Positive',
+ 'Modify Cc',
+ 'Add Annotation',
+ 'Re-assign',
+ 'Cancel Reassign',
+ 'Clearing House',
+ 'Cancel Clearing',
+ 'Verify',
+ 'Escalation 1',
+ 'Escalation 2',
+ 'Escalation 3',
+ 'Special Escalation',
+ 'Delete Ticket',
+ 'Archive Ticket',
+ 'Accept Ownership',
+ 'Reject Ownership'
+);
+
+# - Fontawesome icon classes to be used for Quick-Action buttons
+# You can find instructions to add/change icons at .devel/third-party/fontawesome/README
+Set( %TicketActionIcons, (
+ 'Report Fixed' => 'fas fa-thumbs-up',
+ 'Close' => 'fas fa-window-close',
+ 'Request Exception' => 'fas fa-business-time',
+ 'Generate Exception Token' => 'fas fa-key',
+ 'Cancel Exception' => 'fas fa-window-close',
+ 'Cancel / Reject Exception' => 'fas fa-window-close',
+ 'Confirm Valid Exception' => 'fas fa-check',
+ 'Request support' => 'fas fa-user-cog',
+ 'Support not required anymore' => 'fas fa-user-alt-slash',
+ 'Re-open' => 'fas fa-history',
+ 'Reset to open' => 'fas fa-bell-slash',
+ 'Report as False Positive' => 'fas fa-comment-medical',
+ 'Cancel False Positive' => 'fas fa-comment-slash',
+ 'Confirm as False Positive' => 'fas fa-comments',
+ 'Modify Cc' => 'fas fa-user-friends',
+ 'Add Annotation' => 'fas fa-comment-dots',
+ 'Re-assign' => 'fas fa-people-arrows',
+ 'Cancel Reassign' => 'fas fa-window-close',
+ 'Clearing House' => 'fas fa-house-user',
+ 'Cancel Clearing' => 'fas fa-window-close',
+ 'Verify' => 'fas fa-user-check',
+ 'Escalation 1' => 'fas fa-bell',
+ 'Escalation 2' => 'fas fa-bell',
+ 'Escalation 3' => 'fas fa-bell',
+ 'Special Escalation' => 'fas fa-user-tag',
+ 'Delete Ticket' => 'fas fa-trash-alt',
+ 'Archive Ticket' => 'fas fa-archive',
+ 'Accept Ownership' => 'fas fa-user-check',
+ 'Reject Ownership' => 'fas fa-history'
+));

-----------------------------------------------------------------------

Summary of changes:
etc/RT_Config.pm.in | 3 +-
etc/RT_SiteConfig.d/00_Core_Config.pm | 268 +++++++++++++++++++++
etc/RT_SiteConfig.d/10_CF_Groupings.pm | 21 ++
etc/RT_SiteConfig.d/BulkActions_Config.pm | 95 ++++++++
.../DeactivateSettingsOnPreferences.pm | 2 +
etc/RT_SiteConfig.d/Due_Config.pm | 26 ++
etc/RT_SiteConfig.d/EHT_Token.pm | 57 +++++
etc/RT_SiteConfig.d/Lifecycle_Config.pm | 203 ++++++++++++++++
etc/RT_SiteConfig.d/REST2.pm | 3 +
etc/RT_SiteConfig.d/ServiceProvider.pm | 207 ++++++++++++++++
etc/RT_SiteConfig.d/TicketActionButtons_Config.pm | 67 ++++++
11 files changed, 951 insertions(+), 1 deletion(-)
create mode 100644 etc/RT_SiteConfig.d/00_Core_Config.pm
create mode 100644 etc/RT_SiteConfig.d/10_CF_Groupings.pm
create mode 100644 etc/RT_SiteConfig.d/BulkActions_Config.pm
create mode 100644 etc/RT_SiteConfig.d/DeactivateSettingsOnPreferences.pm
create mode 100644 etc/RT_SiteConfig.d/Due_Config.pm
create mode 100644 etc/RT_SiteConfig.d/EHT_Token.pm
create mode 100644 etc/RT_SiteConfig.d/Lifecycle_Config.pm
create mode 100644 etc/RT_SiteConfig.d/REST2.pm
create mode 100644 etc/RT_SiteConfig.d/ServiceProvider.pm
create mode 100644 etc/RT_SiteConfig.d/TicketActionButtons_Config.pm


hooks/post-receive
--
rt
_______________________________________________
rt-commit mailing list
rt-commit@lists.bestpractical.com
https://lists.bestpractical.com/mailman/listinfo/rt-commit