Releases: xh/hoist-core
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
v1.2.0
π₯ Breaking Changes
- None
π New Features
This release adds support for InstanceConfigUtils, a utility for loading configuration properties from an external YAML file once on startup and exposing them to the application as a map.
- These are intended to be minimal, low-level configs that apply to a particular deployed instance of the application and therefore are better sourced from a local file/volume vs. source code, JavaOpts, or database-driven ConfigService entries.
- Examples include the AppEnvironment as well as common Bootstrap requirements such as database credentials.
- See the class-level doc comment for additional details. Use of InstanceUtils is not required to take this release.