Skip to content

v4.12.0

Choose a tag to compare

@github-actions github-actions released this 28 Apr 13:03
· 85 commits to main since this release

What's Changed

  • IpReadFilter by @slominskir in #46
  • Set break-word on Settings columns (#45)
  • Refresh Cache Settings before calling ChangeAction
  • Format Settings page
  • Show admins in Help page if logged in
  • Smoothness lib version now read from build
  • Help page config now comes from Settings instead of env
  • Notifications config now comes from Settings instead of env
  • Email config now comes from Settings instead of env

Oracle DB Migration Notes

-- OPTIONAL: IP READ FILTER (ACL)
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT) values ('IP_READ_FILTER_ENABLED', 'N', 'BOOLEAN', 'Whether to enable IP filtering of pages requiring auth to view.  You must redeploy the app for this setting change to take effect.', 'ACL', 1);
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT, CHANGE_ACTION_JNDI) values ('IP_READ_ALLOWLIST_PATTERN', '127\.0.*', 'STRING', 'Java REGEX Pattern of allowed IPs for unauthenticated access to view IpReadFilter pages', 'ACL', 2, 'java:global/sim/IpReadAllowlistReconfigureService');
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT) values ('IP_READ_URL_PATTERN', '/*', 'STRING', 'URL patterns to match when applying the IP Read Filter.  You must redeploy the app for this setting change to take effect.', 'ACL', 3);

-- OPTIONAL: Notification Banner
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT) values ('NOTIFICATION_ENABLED', 'Y', 'BOOLEAN', 'Notification banner enabled', 'NOTIFICATION', 1);
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT) values ('NOTIFICATION_MESSAGE', 'Development Environment', 'STRING', 'Notification message', 'NOTIFICATION', 2);
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT) values ('NOTIFICATION_LINK_NAME', 'Home', 'STRING', 'Notification link name', 'NOTIFICATION', 3);
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT) values ('NOTIFICATION_LINK_URL', 'https://github.com/JeffersonLab/smoothness', 'STRING', 'Notification link URL', 'NOTIFICATION', 4);

-- OPTIONAL: Help Page
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT) values ('HELP_CONTENT_CONTACT', 'John Doe (jdoe)', 'STRING', 'Content Contact for help page', 'HELP', 1);
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT) values ('HELP_TECHNICAL_CONTACT', 'John Doe (jdoe)', 'STRING', 'Technical Contact for help page', 'HELP', 2);
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT) values ('HELP_DOC_CSV', 'https://github.com/JeffersonLab/smoothness|Home', 'CSV', 'CSV of documentation items where each item is a URL and a Label separated with the pipe symbol', 'HELP', 3);

-- OPTIONAL: Email
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT) values ('EMAIL_ENABLED', 'Y', 'BOOLEAN', 'Emails (including Help/Feedback) enabled', 'EMAIL', 1);
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT) values ('EMAIL_TESTING_ENABLED', 'N', 'BOOLEAN', 'Send all emails to testlead user group', 'EMAIL', 2);
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT) values ('EMAIL_DOMAIN_NAME', '@jlab.org', 'STRING', 'The email domain to append to usernames, starting with and including the ampersat.', 'EMAIL', 3);
insert into SETTING (KEY, VALUE, TYPE, DESCRIPTION, TAG, WEIGHT) values ('EMAIL_SENDER_ADDRESS', 'smoothness@jlab.org', 'STRING', 'Email address to use as sender from emails generated in this app.  Note: this is not the same as "from".', 'EMAIL', 4);

-- rename key
update SETTING set KEY = 'SMOOTHNESS_CDN_ENABLED' where key = 'SMOOTHNESS_CDN';

-- remove key
delete from SETTING where KEY = 'SMOOTHNESS_VERSION';

web.xml changes

Add:

    <context-param>
        <param-name>smoothnessVersion</param-name>
        <param-value>@SMOOTHNESS_VERSION@</param-value>
        <description>Needed if you enable CDN.  Set once in build.gradle.</description>
    </context-param>
    <listener>
        <listener-class>org.jlab.smoothness.presentation.util.SettingsCacheInit</listener-class>
        <description>We don't use @WebListener because we want this listener to be first in case others use DB Setting Cache</description>
    </listener>

build.gradle changes

Add:

ext.smoothnessVersion = '4.12.0'
...
    implementation "org.jlab:smoothness-weblib:${smoothnessVersion}"
...
        filter {
            String line -> line.replaceAll("@SMOOTHNESS_VERSION@", smoothnessVersion)
        }
...

Full Changelog: v4.11.0...v4.12.0