Skip to content

v2.0.0

Compare
Choose a tag to compare
@LoicPoullain LoicPoullain released this 27 Nov 16:16
· 1746 commits to master since this release

How to upgrade to v2.0

https://github.com/FoalTS/foal/blob/v2-0-0/docs/upgrade-to-v2/index.md
OR (if dead link)
https://github.com/FoalTS/foal/blob/master/docs/upgrade-to-v2/index.md

Features

General issue: #658

1. Developper experience (CLI) ✅

  • Simplify commands for scripts and migrations (issue: #494) (PR: #684).

2. Authentication with sessions ✅

Summary: #799.

  • Simplify logout (issue: #726) (PR: #659)
  • Remove the need for a secret (issue: #727) (PR: #742)
  • Do not let TypeORMStore auto-update the database schema (issue: #766) (PR: #767)
  • Allow to query all sessions of a user (issue: #510) (PR: #780)
  • Allow to query all connected users (issue: #778) (PR: #780)
  • Allow to force the disconnection of a user (issue: #779) (PR: #780)
  • Support flash sessions (issue: #521) (PR: #781)
  • Allow to regenerate the session ID for security reasons (issue: #728) (PR: #792).
  • Make it easier to implement a custom session store and maintain it (issue: #794) (PR: #792).
  • Cleanup regularly expired sessions in MongoStore and TypeORMStore (issue: #793) (PR: #792).
  • Make it easier to use templates and to authenticate anonymous users (issue: #795) (PR: #792).
  • [MongoStore] Use sessionID instead of _id to prevent errors on hex vs base64 (issue: #797) (PR: #800)
  • [V2][Sessions] Remove the need of setSessionCookie in login (issue: #796) (PR: #801)
  • Make it easy/fast to use CSRF tokens with sessions (SPA & regular apps) (issue: #798) (PR: #802)
  • Do not save sessions if an error is thrown in a controller or a hook (PR: #823).

3. Schema references in validation hooks ✅

  • Allow to use OpenAPI schema references (issue: #552) (PR: #734)

4. Service initialization ✅

  • Initialize services by default (PR: #733)

5. Accessing file metadata during uploading ✅

  • [File upload] Access file size, mime type, encoding and original file name (issue: #673) (PR: #730)

6. Safer configuration ✅

  • Replace Config.get with Config.get2 (issue: #496) (PR: #732)

7. Improve the naming of JWT settings ✅

8. Remove support of Mongoose ✅

  • Remove support of Mongoose (PR: #741)

9. Improve the configuration system ✅

  • Use new configuration system (issues: #497, #805) (PR: #806)

10. Simplify the management of custom errors thrown in controllers and hooks ✅

  • Simplify the management of custom errors thrown in controllers and hooks (issue: #638) (PR: #807)

11. Cleanup ✅

  • Drop NodeJS 8 support and test NodeJS 12 (PR: #699).
  • Remove outdated and useless security headers.
  • Remove the objects ObjectDoesNotExist, PermissionDenied (PR: #718)
  • PR: #804

Dependencies

Packages

  • @foal/cli
    • commander@6.2
  • @foal/jwks-rsa
    • jwks-rsa@1.10
  • @foal/swagger
    • swagger-ui-dist@3.35
  • @foal/typestack
    • class-transformer@0.3 (peer dependency)

Generated projects (foal createapp)

  • sqlite3@5.0
  • @types/mocha@7.0.2
  • @types/node@10.17.24
  • concurrently@5.3
  • mocha@8.2
  • supertest@6.0
  • typescript@4.0