Releases: xh/hoist-core
v4.0.0
๐ฅ Breaking Changes
- Relevant
HoistImplController
endpoints now require aclientUsername
param to ensure the client and server are in sync re. the currently active user. This resolves edge-case bugs around impersonation and preference, dashboard changes flushing changes on unload to the wrong server-side user. (#46)
v3.1.2
๐ Bug Fixes
- The
xhEmailDefaultDomain
config no longer needs a leading (and confusing)@
- EmailService will prepend this automatically.โ ๏ธ Note app-level configs with a leading@
in place will need to be adjusted. (#43)
v3.1.1
๐ Bug Fixes
- IdentityService.getUser() should not throw when called outside context of a request -- just return null. Important when e.g. looking for a username within service calls that might be triggered by a controller-based web request or a timer-based thread. 4130a9a
v3.1.0
๐ New Features
- Group field added to Preferences for better organization and consistency with AppConfigs.
โ ๏ธ Note schema update required:
--MySQL
ALTER TABLE xh_preference ADD group_name VARCHAR(255);
UPDATE xh_preference SET group_name = 'Default' WHERE group_name IS NULL;
ALTER TABLE xh_preference MODIFY group_name VARCHAR(255) NOT NULL;
--SQL Server
ALTER TABLE xh_preference ADD group_name VARCHAR(255);
UPDATE xh_preference SET group_name = 'Default' WHERE group_name IS NULL;
ALTER TABLE xh_preference ALTER COLUMN group_name varchar(255) NOT NULL
- ClientError tracking gets a
userAlerted
flag to record whether or not the user was shown a pop-up dialog (vs. an error being reported quietly in the background).
โ ๏ธ Note schema update required:
-- SQL Server
ALTER TABLE xh_client_error ADD user_alerted bit NOT NULL DEFAULT 0
-- MySQL
ALTER TABLE xh_client_error ADD user_alerted bit(1) NOT NULL DEFAULT 0
๐ Bug Fixes
- Log archiving fixed for apps with a dash or underscore in their appCode.
v.3.0.4
๐ Bugfixes
- Removed plugin grails-x-frame-options-plugin. It will be put into the hoist-sencha project.
It is only needed in hoist-sencha apps. Hoist-react apps will get this header set by nginx.
v.3.0.3
๐ New Features
- Added plugin grails-x-frame-options-plugin
- This prevents XSS attacks by setting by default the most strict header setting
X-Frame-Options: DENY
on all responses from the grails server. You can relax this strict setting toSAMEORIGIN
(and will probably want to) by addingplugin.xframeoptions.sameOrigin = true
inside the grails clause of your application.groovy file (see piq-react for example).
v3.0.2
๐ Libraries
- Gradle wrapper
4.8
v3.0.1
๐ New Features
- Updates of following libraries:
grailsVersion=3.3.1 -> 3.3.5
grailsAsyncVersion=3.3.1 -> 3.3.2
gormVersion=6.1.7.RELEASE -> 6.1.9.RELEASE
- Note Grails update fixes support for the pathJar which helps fix long class path issues on Windows.
- Default theme is now the 'light' theme.
v3.0.0
๐ฅ Breaking Changes
- This release unwinds the multi environment config concept. See #30 for the corresponding issue.
- To take this update, developers need to also migrate to v5.X.X of hoist-react or v2.X.X of hoist-sencha and follow these steps in each environment:
Step 1
If you are doing this migration in a lower environment (dev, stage, uat) you may want to keep that environment's configs. For example, if you are migrating the dev env app to this new code, and there are configs in the dev_value column that you would like to keep in the dev environment, you first need to manually copy these values from the dev field to the prod field in the dev admin config UI.
Step 2
Turn off your grails server and your webpack server (if applicable).
Add a new 'value' column with allow null, allow null in the old 'prod_value' column, then copy prod_value values over to the new value column:
For MySQL DB:
ALTER TABLE `xh_config` ADD `value` LONGTEXT;
ALTER TABLE `xh_config` MODIFY `prod_value` LONGTEXT;
For MS SQL Server DB:
ALTER TABLE xh_config
ADD value varchar(max) NULL
ALTER COLUMN prod_value varchar(max)
For MySQL DB:
UPDATE `xh_config` SET `value` = `prod_value`
For MS SQL Server DB:
UPDATE xh_config SET value = prod_value
Step 3
Update app code in environment to use hoist-core v3.0.0 and hoist-react v5.X.X or hoist-sencha v2.0.0.
If your app is in a customer/client's environment, you will not be updating hoist-core, but rather [customer]HoistVersion to version 5.0.0.
Remove
supportedEnvironments = ['Staging', 'Development']
from grails-app/conf/application.groovy in your app. (Note that this line might appear twice - once near the top if an app has customized and once in the "hoistDefaults" section.)
Step 4
Set value to not accept NULL and drop old columns:
For MySQL DB:
ALTER TABLE `xh_config`
MODIFY `value` LONGTEXT NOT NULL;
ALTER TABLE `xh_config`
DROP COLUMN `beta_value`, `stage_value`, `dev_value`, `prod_value`;
For MS SQL Server DB:
ALTER TABLE xh_config
ALTER COLUMN value varchar(max) NOT NULL
ALTER TABLE xh_config
DROP COLUMN prod_value, dev_value, stage_value, beta_value
๐ New Features
- None
๐ Bugfixes
- None
v2.0.0
๐ฅ Breaking Changes
- This release includes updates around how the key
appCode
andappName
identifiers are read from application builds and what they represent. See #33 for the corresponding issue. This standardizes the meaning of these two identifiers on the client and server, and decouples the server-side appCode from the Gradle project name. - To take this update, applications must ensure their
build.gradle
file populates these variables within a grails.build.info file created by Grails itself during the build. See e.g. this commit to the Toolbox app for an example of this change. - Apps should audit their use of
Utils.appName
on the server-side and update toUtils.appCode
if they need to continue accessing the shortname variant.
๐ New Features
- None
๐ Bugfixes
- None