# Release Notes
# wood
releases
When updating an existing project, please review these notes for potential changes to how the base Nodewood library functions.
# 1.0.0
- Small rename for clarity in Page template.
- Adds
afterRequestAugmented()
in AppBuilder. - Fixes error with testResolver sometimes attempting to import directories instead of sibling files with the same name.
- Moves positioning styling out of UserMenu and into App/AdminTemplate.
- Updates PrimeVue.
- Changes
keys
parameter in Service'supdate()
andinsert()
to be optional. - Automatically injects Services into Controllers and other Services.
- Fixes potential issue with subscription cancellation if support email fails.
- Fixes issue where ejected Controllers or Services wouldn't be loaded unless the app was explicitly enabled in app feature list.
- Adds healthcheck endpoint to API.
- Adds healthchecks and dependencies for docker containers to fix uncommon but frustrating startup issues.
- Updates
passport
version for security. - Services are now automatically injected into Scripts, same as how they are injected into Controllers and Scripts.
- Adds Pulumi deploy option.
There are some pretty big changes in this release, please see the Upgrade Guide for how they affect you and how to integrate them into your project.
# 0.20.1
- API's
startServer()
now accepts a function that can modify the server before .listen() is called. - Moves JWT-related auth functions out of
Passport
file into their ownJwt
file. - Updates templates so
feature
from CLUadd
command is never pluralized.
# 0.20.0
- Removes Vue 3 compatibility mode.
- Adds
flags
to TeamModel. - Adds
secure_flags
to UserModel and TeamModel. - Adds
hasFlag()
to UserModel and TeamModel. - Adds a script runner and script templates.
- Fixed an error where TeamService.count did not respect any additional options other than 'name'.
- Adds 'insertModel()' to Service.
- Add 'OutOfRangeError' to Errors.
- Uses shorter months for Recent User/Team "joined" date in admin dashboard.
- Adds a script to roll up user/team/mrr historical data.
- Updates Admin Dashboard to use rolled-up data for "Analytics" section.
- Fixes weird "blank left border" style issue on toast popups.
- Fixes warning toasts not having any style applied.
- Updates to latest version of Chart.js and vue-chart-3.
- Adds and upgrades some peer dependencies.
- Adds model name to model FIELDS definitions.
- Adds validator name to FORM_FIELDS definitions.
- Fixes bug with typing in manual state names for subscriptions.
- Fixes bug where email was not being sent to Stripe.
- Fixes bug where team name was being sent to Stripe, even with teams disabled.
# 0.19.0
- Adds responsive styles to make Nodewood mobile-friendly! (See Upgrade Guide.)
- Adds new mobile-friendly DataTable component.
- Fixes per-page number for Admin Teams not correctly interacting with search text.
# 0.18.0
- Upgrades from Vue 2 to Vue 3.2 in compatibility mode. (See Upgrade Guide.)
- Upgrades Docker base from Node 14 to Node 16.
# 0.17.1
- Adds an info log at the beginning of signup. In case any steps fail and the signup is rolled back, you at least have the user's name and email address.
- Simplifies team name identification.
- Adds a simplified theming system.
# 0.17.0
- Moves logger setup earlier in application setup, so logger is available on request for earlier errors.
- Adds custom handling for JSON body parse errors.
- Adds isHtml properties for Fields, allowing them to be displayed using v-html directives.
- Adds new field: FieldEmail for email addresses.
- Changes Email field in UserModel to use a FieldEmail.
- Fixes "page" error message in ListRequestValidator.
- Adds
#lib/Config
to make it easier to load and override config settings for testing. - Adds
isFeatureEnabled
helper function in#lib/Config
. - Fixes Standard401Error with incorrect signatures causing errors on failed auth.
- Adds helpful error message for
find
in Services when an Object is used (you probably want to usefindBy
in these cases). - Fixes Service's
destroy()
not reporting the correct table when hitting an error. - Updates
users
andteams
sequence to start correctly when using test helpers to insert default users. - Moves
updateCsrfToken()
toui/lib/xhr
so it can be used for logging in from other locations than just the ActiveUserStore. - Adds
aliases
parameter to Validator. - Allows you to pass an array of Validators to Controller.validate().
- Rolls back to Numbro 2.3.0 to fix currency rounding issue.
- Refactors AdminUserController's list() function to be more-easily extendable.
- Adds a "teams" attribute to UserModel.
- Populates UserModel's "teams" attribute from the AdminUsersController's list() function.
- Adds
keyValue()
function toModel
so that the model's value for a particular key can be overridden to allow for fields that build their values from complex model attributes. - Updates Service template and existing templates to include order parameter.
- Adds
instance
parameter to all Fields, so the instance of the model being examined is available to the fields if necessary. - Models pass themselves to Fields as a second,
instance
parameter, to allow for late-bound calculated FieldCustoms. - DropdownMenuItems now close their parent DropdownMenus immediately when clicked.
# 0.16.2
- Fixes warning of using 'this' in ChangeSubscriptionPage.vue template.
- Fixes regex for how to proxy requests from nginx.
- Removes extraneous variable in Store template.
- Fixes env check for logging routes.
- Fixes a bug where the wrong filename could be logged when trying to require a file that does not exist.
# 0.16.1
- Adds feature detection for form auto-submit, to not cause errors on browsers that don't support it.
# 0.16.0
- Orders admin user list in order of account creation, most-recent first.
- Automatically submits forms when Enter is pressed in TextInputs.
- Moves Home, About, and Component sample pages to
samples
feature. (See Upgrade Guide.) - Switches from using deprecated
VueRouter.addRoutes()
to.addRoute()
. - Adds and enables
eslint-plugin-promise
eslint rules. (See Upgrade Guide.) - Changes how Webpack Dev server is configured, enabling HMR (Hot Module Reloading). (See Upgrade Guide.)
- Moves express configuration in AppBuilder to a function for easier overriding in app-level code.
- Moves
saveLoginCookies()
toUsersService
. - Adds ability to log routes on startup. (Set
NODE_ENV=development
andLOG_ROUTES=log
in.env
) - Adds ability to configure max body size and url parameter limit in
config/app.js
. - Returns standard-format errors when exceeding max body size/url parameter limit.
# 0.15.0
- Uses
name
fromconfig/app.js
as Application Name on sidebars. - Modifies Nginx config to omit logging for OPTIONS requests. (See upgrade guide.)
- Changes webpack to polling mode for more-reliable reloads of UI on change.
- Adds special warning when migrations have not yet been run.
- Better error handling when requiring cascading files.
- Upgrades TailwindCSS to v2! (See upgrade guide.)
- Upgrades a variety of packages. (See upgrade guide.)
- Fixes Webpack Bundle Analyzer plugin. (See documentation.)
# 0.14.0
- Changes Postgres Docker container to build from Postgres image, not use it directly.
- Updates templates for
nodewood add:feature
to create a more full-featured example.
# 0.13.0
WARNING
This release is a significant change to the require system of Nodewood. Please refer to the upgrade guide for 0.13.0.
- Moves admin route protection to vue-router global navigation guard.
- Adds UI subscription capability route protection in global navigation guard.
- Fixes error in subscription capability detection.
- Removes unused ApiDocs documentation folder/scripts.
- Forces Validator to display API Errors even if field value is empty.
- Add relative flow to templates so that overlay is full-screen.
- Fixes check for subscriptions with insufficient capabilities.
- Simplifies specific inclusion of files in
app
orwood
folder.
# 0.12.1
- Updates store fragment to use plural filename.
# 0.12.0
WARNING
This release is a significant change in the file layout of Nodewood. Please refer to the upgrade guide for 0.12.0.
- Fixes unconfirmed user login redirect.
- Fixes double error message toast.
- Fixes confusing error messages when unauthorized.
- Fixes bug when some require() calls would not error/close app when failing.
- Fixes password_repeat not being redacted in logs.
- Moves code from
api
,lib
, andui
up out of theirsrc
folders to better match all other folders in the framework.
# 0.11.1
- Moves PostCSS packages from
app
towood
. - Fixes PostCSS purge configuration.
- Adds Tailwind future-proofing configuration values.
- Revert to an earlier version of numbro to fix currency formatting issues.
# 0.11.0
- Changes the default application URL to
localhost
. - Right-aligns the user dropdown.
- Changes the default sales website serving folder to
www/dist
.
# 0.10.0
- Updates
sameSite
parameter ofcsrf
andjwt
cookies toStrict
. - Modifies default email config to use JSON stream transport and log emails in default configuration.
- Removes API Docker container's dependency on UI container.
- Defaults subscriptions feature to being enabled.
- Fixes subscriptions tests.
- Updates testResolver to ignore disabled app features (for reliable wood testing).
- Updates testResolver to fix application tests in new Docker setup.
- Updates .gitignore to ignore OSX litter files.
- Updates docker configuration to allow for multiple databases: development and test.
- Updates docker configuration to be run from
wood/docker
directly. - Adds LoadingSpinner component.
- Adds sample Admin Dashboard.
- Moves application startup code from app folder to here.
# 0.9.0
- Fixes error parsing in XHR when an array of errors are returned.
- Fixes updated CSRF token not being set on signup.
- Removes Ansible and Vagrant references and files.
- Exposes Docker PostgreSQL container for access from host development system.
- Sources PostgreSQL connection values from .env file.
# 0.8.5
- Fixes typo in email configuration error message.
- Adds early-access Docker development setup.
# 0.8.4
- Added
FieldCustom
field that calculates the field value with a custom function. - Cleaned up styling on admin user list.
- Fixed issue where some clicks on TextInput labels wouldn't focus the input.
- Redesigned Create Subscription page as a much cleaner 2-column design.
# 0.8.3
- Added
.js.map
to list of requests not logged in API. - Fixed API init so that controllers are required correctly (i.e. will require their 'app' versions if present).
- Removed default AWS email configuration, added debug error message about setting up email configuration.
- Added a pre-commit hook to prevent you from making accidental commits to the wood folder.
# 0.8.2
- API defaults to not logging JS/CSS/image file requests.
- Removed default AWS email configuration, added error message when email configuration is missing.
- Adds pre-commit hook to prevent accidental commits to "wood" folder.
# 0.8.1
- Initial beta release.
# template
releases
The Nodewood template is typically only updated to accommodate significant updates to the base Nodewood library. If you have an existing project, you generally do not have to pay attention to these updates.
# 1.0.0
- Adds files for new
nodewood seed
command.
# 0.20.0
- Adds massivejs peer dependency "pg".
- Updates version of @vue/test-utils.
- Manually specifies testEnvironment of "node" for jest config.
- Adds
#cli
resolution for eslint. - Disables some accessibility lint rules.
- Adds
script.js
. - Updates packages.
# 0.19.0
- Updates
vue-is-loading
.
# 0.18.0
- Removes
-L
(legacy file watching) flag from API Nodemon command line. - Adds standard
postcss.config.js
to project root. - Upgrades from Vue 2 to Vue 3.2 in compatibility mode.
# 0.17.0
- Adds
GENERAL_HASHID_SALT=generalHashidSalt
to sample and test .env files. - Updates MassiveJS.
- Adds default app config files for teams.
- Adds API-specific email config files.
# 0.15.1
- Fixes eslint error that blocks initial UI build.
# 0.15.0
- Removes routes from
main.js
that have been moved to thesamples
feature. - Enables
eslint-plugin-promise
eslint rules. - Changes how Webpack Dev server is configured, enabling HMR (Hot Module Reloading).
# 0.14.1
- Adds back mistakenly-trimmed routes.
# 0.14.0
- Updates API dev command to also watch
app/lib
folder and restart API on changes. - Updates a variety of packages.
# 0.13.0
- Simplifies specific inclusion of files in
app
orwood
folder to match 0.13.0 ofwood
.
# 0.12.1
- Removes migration step from when dev server starts.
# 0.12.0
- Removes
stripe.json.template
from config folder. - Removes
pm2.yml
from root folder. - Moves code from
api
,lib
, andui
up out of theirsrc
folders to better match all other folders in the framework.
# 0.11.1
- Removes PostCSS packages (moved to
wood
). - Adds sample Bronze, Silver, Gold packages to
config/stripe/products.json
.
# 0.11.0
- Moves sales site
index.html
towww/dist
.
# 0.10.0
- Changes email config to start empty.
- Changes wood app config include to a relative include.
- More-explicitly requires .env file to ensure it is found, despite Docker interference.
- Removes template Docker configuration, as it is run from
wood/docker
now. - Moves application startup code from here to
wood
folder.
# 0.8.1
- Initial beta release.
← Welcome Upgrade Guide →