Skip to content

Releases: ZenSoftware/zen

v8.0.0 Authorization Overhaul

31 Jan 03:00
Compare
Choose a tag to compare

This major release contains a complete overhaul for authorization. A lot of thought went into creating a more maintainable authorization scheme. View @zen/nest-auth README.md for documentation. Previously there were specific guards & decorators depending on whether they were being applied to HTTP or GraphQL contexts. These have all been reconciled into guards & decorators that work for both contexts. For example, @GqlUser & @HttpUser have been replaced with @CurrentUser.

Furthermore, the code generation of the GraphQL resolvers for the Prisma CRUD endpoints have been rewritten to properly implement @casl/prisma. It required some experience with the library to really work out how to best integrated CASL into the api. Authorization is in a much better place for this release.

Features

  • Regenerated the entire monorepo utilizing the latest version of Nx.
  • All dependencies updated.
  • The monorepo now works with other package managers, specifically pnpm.
  • Went through the package.json with a fine tooth comb and removed all unnecessary dependencies.
  • Scrubbed out all dead code from the repo.
  • Theme has been updated to accommodate for the major changes made in @angular/material v15.
  • TypeScript strict & noImplicitAny flags has been enabled for the Nest app. This ensures many more guarantees for correctness.
  • strictPropertyInitialization flag has been disabled due to class-validator not playing well with it.
  • For scalability reasons, the user's id field is now a String @default(uuid()) instead of Int @default(autoincrement()).
  • kendo branch has been updated to the newest release of Kendo v11.
  • otel branch now integrates Prisma tracing.
  • Added more tests throughout the repo.
  • Dockerfile that builds the API for production now utilizes pnpm instead of npm.
  • Added a 404 Page not found component for the Angular app.
  • Removed @zen/api-interfaces library and consolidated everything under @zen/common.
  • Integrated Storybook for the @zen/auth & @zen/components libraries. This allows for a simple way to browse the catalogue of components available.
  • Refactored the services that the code generated GraphQL resolvers depend on to enable the resolvers to be unit testable.
  • Polish, polish and more polish. 🎐

v7.0.0 Angular v15 and Prisma 4 upgrades

09 Dec 08:11
Compare
Choose a tag to compare
  • Updated to Angular v15
  • Updated to Prisma v4
  • Updated to PalJS v5
  • Integrated @casl/angular & @casl/prisma

There was a need for a major refactoring of the project to convert it from a monolith into something much more modular. One in which multiple Nx apps could be backed by their own respective databases. Housing their own schema.prisma file under apps/<APP_NAME>/schema.prisma, rather than a single prisma/schema.prisma file existing at the root.

  • Customized the output paths to Prisma client
  • Refactoring the Nest auth code into a standalone library named nest-auth in which multiple Nest apps could import
  • Overhauling the code generation scripts under tools
  • Make PrismaSelect work with custom output path paljs/prisma-tools#210
  • Custom file for casl-prisma integration via the recommended casl-prisma.ts

Bug fixes

  • Replaced createMongoAbility for createPrismaAbility 5626550 in apps/portal/src/app/app.module.ts
  • A bunch of other miscellaneous refinements (⌒_⌒;)

v6.0.0 Nest v9 & Angular v14

08 Aug 12:33
Compare
Choose a tag to compare
  • Upgraded all dependencies
  • Converted all forms to Angular 14 typed forms
  • Upgraded to Nest v9
  • Upgraded to Boostrap v5.2.0
  • Replaced @nest-modules/mailer with @nestjs-modules/mailer #22
  • Save Google profile
  • Refined Kubernetes scripts and provided set of scripts to deploy to a local development cluster. See docs here
  • Simplified npm scripts
  • New @AllowAnonymous decorator the imitates ASP.NET Core AllowAnonymous attribute

🎏 New optional tech integrations

v5.0.4 Sign in with Google & Commitizen

17 May 04:33
Compare
Choose a tag to compare
  • Integrated sign in with Google via Google OpenID Connect. Serves as an example of how to add OpenID connect providers with @nestjs/passport
  • Integrated Commitizen for standardized git commits.
  • Changed GitHub default branch from main to base. This project is intended to be a base for several forked projects. Duplicate branch names are not allowed, so we do not want to take up the main branch name. Forked projects can keep their projects up to date with the latest version of this repo by adding this repo as a remote, pulling changes, and then merging base into their own main branch.
  • Added an example of uploading an array of files via GraphQL.
  • Re-named all git tags from vX.X.X to zX.X.X to not occupy conventional semantic versioning tags of forked projects.
  • Hide Login link on /login page.
  • Exposed userId in AuthService.
  • Fixed height issues with <zen-layout>
  • All dependencies updated to latest version.

v4.2.0 Renamed RejectNestedCreateGuard to ForbidNestedCreateGuard & added options

04 May 20:56
Compare
Choose a tag to compare
  • Created options for ForbidNestedCreateGuard of type { allow: string[] } to list fields to allow
    nested creates while forbidding all other nested creates within mutation arguments. This maximizes
    flexibility to describe what is safe to expose on the API surface layer.

BREAKING CHANGE: Renamed RejectNestedCreateGuard to ForbidNestedCreateGuard

v4.1.0 RejectNestedCreateGuard for mutations

04 May 07:15
Compare
Choose a tag to compare

v4.0.0 Nx 14 update

29 Apr 16:06
Compare
Choose a tag to compare
  • Updated project from Nx v13 to v14
  • All dependencies updated
  • Small refactor of @zen/auth to clean up code

v3.2.0 replaced subscriptions-transport-ws for graphql-ws

02 Mar 12:15
Compare
Choose a tag to compare
  • @apollo/client v3.5.10 now supports the newer GraphQL subscription library graphql-ws. The starter kit is now converted to utilize the newer library as a substitute for the older library subscriptions-transport-ws.
  • All dependencies have been updated

v3.0.8 Updated to Font Awesome v6

22 Feb 12:05
Compare
Choose a tag to compare

v3.0.0 Update to @nestjs/graphql v10

20 Feb 09:45
Compare
Choose a tag to compare