# 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
keysparameter 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
passportversion 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
Passportfile into their ownJwtfile. - Updates templates so
featurefrom CLUaddcommand is never pluralized.
# 0.20.0
- Removes Vue 3 compatibility mode.
- Adds
flagsto TeamModel. - Adds
secure_flagsto 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/Configto make it easier to load and override config settings for testing. - Adds
isFeatureEnabledhelper function in#lib/Config. - Fixes Standard401Error with incorrect signatures causing errors on failed auth.
- Adds helpful error message for
findin Services when an Object is used (you probably want to usefindByin these cases). - Fixes Service's
destroy()not reporting the correct table when hitting an error. - Updates
usersandteamssequence to start correctly when using test helpers to insert default users. - Moves
updateCsrfToken()toui/lib/xhrso it can be used for logging in from other locations than just the ActiveUserStore. - Adds
aliasesparameter 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 toModelso 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
instanceparameter 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,
instanceparameter, 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
samplesfeature. (See Upgrade Guide.) - Switches from using deprecated
VueRouter.addRoutes()to.addRoute(). - Adds and enables
eslint-plugin-promiseeslint 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=developmentandLOG_ROUTES=login.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
namefromconfig/app.jsas 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:featureto 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
apporwoodfolder.
# 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, anduiup out of theirsrcfolders to better match all other folders in the framework.
# 0.11.1
- Moves PostCSS packages from
apptowood. - 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
sameSiteparameter ofcsrfandjwtcookies 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/dockerdirectly. - 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
FieldCustomfield 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.mapto 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 seedcommand.
# 0.20.0
- Adds massivejs peer dependency "pg".
- Updates version of @vue/test-utils.
- Manually specifies testEnvironment of "node" for jest config.
- Adds
#cliresolution 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.jsto project root. - Upgrades from Vue 2 to Vue 3.2 in compatibility mode.
# 0.17.0
- Adds
GENERAL_HASHID_SALT=generalHashidSaltto 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.jsthat have been moved to thesamplesfeature. - Enables
eslint-plugin-promiseeslint 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/libfolder and restart API on changes. - Updates a variety of packages.
# 0.13.0
- Simplifies specific inclusion of files in
apporwoodfolder to match 0.13.0 ofwood.
# 0.12.1
- Removes migration step from when dev server starts.
# 0.12.0
- Removes
stripe.json.templatefrom config folder. - Removes
pm2.ymlfrom root folder. - Moves code from
api,lib, anduiup out of theirsrcfolders 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.htmltowww/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/dockernow. - Moves application startup code from here to
woodfolder.
# 0.8.1
- Initial beta release.
← Welcome Upgrade Guide →