Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@amplication/plugin-auth-jwt

Package Overview
Dependencies
Maintainers
8
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@amplication/plugin-auth-jwt - npm Package Compare versions

Comparing version 1.4.3 to 1.4.4

.amplicationrc.json

9

dist/static/auth/jwt/jwtSecretFactory.ts

@@ -1,10 +0,13 @@

import { JWT_SECRET_KEY } from "../../constants";
import { JWT_SECRET_KEY_PROVIDER_NAME } from "../../constants";
import { SecretsManagerService } from "../../providers/secrets/secretsManager.service";
import { EnumSecretsNameKey } from "../../providers/secrets/secretsNameKey.enum";
export const jwtSecretFactory = {
provide: JWT_SECRET_KEY,
provide: JWT_SECRET_KEY_PROVIDER_NAME,
useFactory: async (
secretsService: SecretsManagerService
): Promise<string> => {
const secret = await secretsService.getSecret<string>(JWT_SECRET_KEY);
const secret = await secretsService.getSecret<string>(
EnumSecretsNameKey.JwtSecretKey
);
if (secret) {

@@ -11,0 +14,0 @@ return secret;

@@ -1,2 +0,2 @@

export const JWT_SECRET_KEY = "JWT_SECRET_KEY";
export const JWT_SECRET_KEY_PROVIDER_NAME = "JWT_SECRET_KEY";
export const JWT_EXPIRATION = "JWT_EXPIRATION";

@@ -5,7 +5,6 @@ import { forwardRef, Module } from "@nestjs/common";

import { PassportModule } from "@nestjs/passport";
import { JWT_EXPIRATION, JWT_SECRET_KEY } from "../constants";
import { JWT_EXPIRATION } from "../constants";
import { SecretsManagerModule } from "../providers/secrets/secretsManager.module";
import { SecretsManagerService } from "../providers/secrets/secretsManager.service";
// @ts-ignore
// eslint-disable-next-line
import { EnumSecretsNameKey } from "../providers/secrets/secretsNameKey.enum";
import { AuthController } from "./auth.controller";

@@ -32,3 +31,5 @@ import { AuthResolver } from "./auth.resolver";

) => {
const secret = await secretsService.getSecret<string>(JWT_SECRET_KEY);
const secret = await secretsService.getSecret<string>(
EnumSecretsNameKey.JwtSecretKey
);
const expiresIn = configService.get(JWT_EXPIRATION);

@@ -35,0 +36,0 @@ if (!secret) {

@@ -9,3 +9,3 @@ import { UnauthorizedException } from "@nestjs/common";

const userService = mock<ENTITY_SERVICE>();
const jwtStrategy = new JwtStrategyBase(userService, "Secrete");
const jwtStrategy = new JwtStrategyBase("Secrete", userService);
beforeEach(() => {

@@ -12,0 +12,0 @@ userService.findOne.mockClear();

import { Inject, Injectable } from "@nestjs/common";
import { JWT_SECRET_KEY } from "../../constants";
import { JWT_SECRET_KEY_PROVIDER_NAME } from "../../constants";
import { JwtStrategyBase } from "./base/jwt.strategy.base";

@@ -9,5 +9,5 @@

export class JwtStrategy extends JwtStrategyBase {
constructor(@Inject(JWT_SECRET_KEY) secretOrKey: string) {
constructor(@Inject(JWT_SECRET_KEY_PROVIDER_NAME) secretOrKey: string) {
super(secretOrKey, ENTITY_SERVICE);
}
}
{
"name": "@amplication/plugin-auth-jwt",
"version": "1.4.3",
"version": "1.4.4",
"description": "set jwt as provider for Amplication build",

@@ -15,3 +15,3 @@ "main": "dist/index.js",

"dependencies": {
"@amplication/code-gen-types": "^2.0.17",
"@amplication/code-gen-types": "^2.0.19",
"@amplication/code-gen-utils": "^0.0.7",

@@ -21,16 +21,16 @@ "lodash": "^4.17.21"

"devDependencies": {
"@babel/parser": "^7.23.0",
"@babel/types": "^7.23.0",
"@types/jest": "^29.5.6",
"@types/lodash": "^4.14.200",
"@babel/parser": "^7.23.3",
"@babel/types": "^7.23.3",
"@types/jest": "^29.5.8",
"@types/lodash": "^4.14.201",
"@types/normalize-path": "^3.0.2",
"@typescript-eslint/eslint-plugin": "^6.9.0",
"@typescript-eslint/parser": "^6.9.0",
"@typescript-eslint/eslint-plugin": "^6.11.0",
"@typescript-eslint/parser": "^6.11.0",
"copy-webpack-plugin": "^11.0.0",
"eslint": "^8.52.0",
"eslint": "^8.53.0",
"jest-mock-extended": "^3.0.5",
"prettier": "^3.0.3",
"prettier": "^3.1.0",
"rimraf": "^5.0.5",
"ts-jest": "^29.1.1",
"ts-loader": "^9.5.0",
"ts-loader": "^9.5.1",
"typescript": "^5.2.2",

@@ -37,0 +37,0 @@ "webpack": "^5.89.0",

@@ -0,1 +1,2 @@

import { CreateServerDockerComposeParams } from "@amplication/code-gen-types";
import { join } from "path";

@@ -9,1 +10,17 @@

"Authentication entity does not exist. Have you configured the authentication entity in the Resource Settings?";
export const AUTH_ENTITY_FIELD_USERNAME = "username";
export const AUTH_ENTITY_FIELD_PASSWORD = "password";
export const updateDockerComposeProperties: CreateServerDockerComposeParams["updateProperties"] =
[
{
services: {
server: {
environment: {
JWT_SECRET_KEY: "${JWT_SECRET_KEY}",
JWT_EXPIRATION: "${JWT_EXPIRATION}",
},
},
},
},
];

@@ -7,2 +7,5 @@ import {

CreateServerAuthParams,
CreateServerParams,
CreateServerDockerComposeParams,
CreateServerSecretsManagerParams,
DsgContext,

@@ -21,6 +24,22 @@ EntityField,

} from "./core";
import { addIdentifierToConstructorSuperCall, addImports, addInjectableDependency, awaitExpression, getClassDeclarationById, importNames, interpolate, logicalExpression, memberExpression } from "./util/ast";
import {
addIdentifierToConstructorSuperCall,
addImports,
addInjectableDependency,
awaitExpression,
getClassDeclarationById,
importNames,
interpolate,
logicalExpression,
memberExpression,
} from "./util/ast";
import { builders, namedTypes } from "ast-types";
import { relativeImportPath } from "./util/module";
import { isPasswordField } from "./util/field";
import {
AUTH_ENTITY_FIELD_PASSWORD,
AUTH_ENTITY_FIELD_USERNAME,
updateDockerComposeProperties
} from "./constants";
import { getPluginSettings } from "./util/getPluginSettings";

@@ -40,2 +59,5 @@ const ARGS_ID = builders.identifier("args");

return {
CreateServer: {
before: this.beforeCreateServer,
},
CreateAdminUI: {

@@ -54,5 +76,38 @@ before: this.beforeCreateAdminModules,

},
CreateServerDockerCompose: {
before: this.beforeCreateDockerComposeFile,
},
CreateServerSecretsManager: {
before: this.beforeCreateSecretsManager,
},
};
}
beforeCreateServer(context: DsgContext, eventParams: CreateServerParams) {
const authEntity = context.entities?.find(
(x) => x.name === context.resourceInfo?.settings.authEntityName
);
if (!authEntity) {
throw new Error(`Authentication entity does not exist`);
}
const requiredFields = [
AUTH_ENTITY_FIELD_USERNAME,
AUTH_ENTITY_FIELD_PASSWORD,
];
requiredFields.forEach((requiredField) => {
const field = authEntity.fields.find(
(field) => field.name === requiredField
);
if (!field) {
throw new Error(
`Authentication entity must have a field named ${requiredField}`
);
}
});
return eventParams;
}
beforeCreateAdminModules(

@@ -271,4 +326,24 @@ context: DsgContext,

}
beforeCreateDockerComposeFile(
dsgContext: DsgContext,
eventParams: CreateServerDockerComposeParams
): CreateServerDockerComposeParams {
eventParams.updateProperties.push(...updateDockerComposeProperties);
return eventParams;
}
beforeCreateSecretsManager(
dsgContext: DsgContext,
eventParams: CreateServerSecretsManagerParams
): CreateServerSecretsManagerParams {
const settings = getPluginSettings(dsgContext.pluginInstallations);
eventParams.secretsNameKey.push({
name: "JwtSecretKey", // Used in jwt strategy as Enum key
key: settings.JwtSecretKeyReference,
});
return eventParams;
}
}
export default JwtAuthPlugin;

@@ -1,10 +0,13 @@

import { JWT_SECRET_KEY } from "../../constants";
import { JWT_SECRET_KEY_PROVIDER_NAME } from "../../constants";
import { SecretsManagerService } from "../../providers/secrets/secretsManager.service";
import { EnumSecretsNameKey } from "../../providers/secrets/secretsNameKey.enum";
export const jwtSecretFactory = {
provide: JWT_SECRET_KEY,
provide: JWT_SECRET_KEY_PROVIDER_NAME,
useFactory: async (
secretsService: SecretsManagerService
): Promise<string> => {
const secret = await secretsService.getSecret<string>(JWT_SECRET_KEY);
const secret = await secretsService.getSecret<string>(
EnumSecretsNameKey.JwtSecretKey
);
if (secret) {

@@ -11,0 +14,0 @@ return secret;

@@ -1,2 +0,2 @@

export const JWT_SECRET_KEY = "JWT_SECRET_KEY";
export const JWT_SECRET_KEY_PROVIDER_NAME = "JWT_SECRET_KEY";
export const JWT_EXPIRATION = "JWT_EXPIRATION";

@@ -5,7 +5,6 @@ import { forwardRef, Module } from "@nestjs/common";

import { PassportModule } from "@nestjs/passport";
import { JWT_EXPIRATION, JWT_SECRET_KEY } from "../constants";
import { JWT_EXPIRATION } from "../constants";
import { SecretsManagerModule } from "../providers/secrets/secretsManager.module";
import { SecretsManagerService } from "../providers/secrets/secretsManager.service";
// @ts-ignore
// eslint-disable-next-line
import { EnumSecretsNameKey } from "../providers/secrets/secretsNameKey.enum";
import { AuthController } from "./auth.controller";

@@ -32,3 +31,5 @@ import { AuthResolver } from "./auth.resolver";

) => {
const secret = await secretsService.getSecret<string>(JWT_SECRET_KEY);
const secret = await secretsService.getSecret<string>(
EnumSecretsNameKey.JwtSecretKey
);
const expiresIn = configService.get(JWT_EXPIRATION);

@@ -35,0 +36,0 @@ if (!secret) {

@@ -9,3 +9,3 @@ import { UnauthorizedException } from "@nestjs/common";

const userService = mock<ENTITY_SERVICE>();
const jwtStrategy = new JwtStrategyBase(userService, "Secrete");
const jwtStrategy = new JwtStrategyBase("Secrete", userService);
beforeEach(() => {

@@ -12,0 +12,0 @@ userService.findOne.mockClear();

import { Inject, Injectable } from "@nestjs/common";
import { JWT_SECRET_KEY } from "../../constants";
import { JWT_SECRET_KEY_PROVIDER_NAME } from "../../constants";
import { JwtStrategyBase } from "./base/jwt.strategy.base";

@@ -9,5 +9,5 @@

export class JwtStrategy extends JwtStrategyBase {
constructor(@Inject(JWT_SECRET_KEY) secretOrKey: string) {
constructor(@Inject(JWT_SECRET_KEY_PROVIDER_NAME) secretOrKey: string) {
super(secretOrKey, ENTITY_SERVICE);
}
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc