@loopstack/auth 0.12.2 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # @loopstack/auth
2
2
 
3
+ ## 0.14.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 8067b2d: This release focuses on enhancing the user experience in Loopstack Studio by introducing the ability to execute workflows with arguments directly from the frontend. This feature allows users to customize and control workflow execution more effectively. In addition to this major update, support for Vercel AI Elements has been added, along with the capability to define workflow and pipeline UI forms and actions through configuration. Various bug fixes and improvements are also included in this release.
8
+ - Add support for defining workflow and pipeline UI forms and actions via configuration.
9
+ - Add support for executing workflows with arguments from Loopstack Studio frontend.
10
+ - Add support for Vercel AI Elements in Loopstack Studio.
11
+ - Various bugfixes and improvements.
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies [8067b2d]
16
+ - @loopstack/core@0.14.0
17
+ - @loopstack/shared@0.14.0
18
+
19
+ ## 0.13.0
20
+
21
+ ### Minor Changes
22
+
23
+ - 41aabbf: Use local frontend without authentication
24
+
25
+ ### Patch Changes
26
+
27
+ - Updated dependencies [41aabbf]
28
+ - @loopstack/core@0.13.0
29
+ - @loopstack/shared@0.13.0
30
+
3
31
  ## 0.12.2
4
32
 
5
33
  ### Patch Changes
@@ -22,8 +22,6 @@ const shared_1 = require("@loopstack/shared");
22
22
  const config_validation_service_1 = require("./services/config-validation.service");
23
23
  const hub_audit_service_1 = require("./services/hub-audit.service");
24
24
  const guards_1 = require("./guards");
25
- const guards_2 = require("./guards");
26
- const local_dev_mode_guard_1 = require("./guards/local-dev-mode.guard");
27
25
  let AuthModule = AuthModule_1 = class AuthModule {
28
26
  static forRoot() {
29
27
  return this.forRootAsync();
@@ -59,11 +57,9 @@ let AuthModule = AuthModule_1 = class AuthModule {
59
57
  services_1.HubService,
60
58
  strategies_1.HubStrategy,
61
59
  hub_audit_service_1.HubAuditService,
62
- guards_2.JwtAuthGuard,
63
- local_dev_mode_guard_1.LocalDevModeGuard,
64
- guards_1.ConditionalAuthGuard,
60
+ guards_1.JwtAuthGuard,
65
61
  ],
66
- exports: [services_1.AuthService, repositories_1.UserRepository, guards_2.JwtAuthGuard, local_dev_mode_guard_1.LocalDevModeGuard, guards_1.ConditionalAuthGuard],
62
+ exports: [services_1.AuthService, repositories_1.UserRepository, guards_1.JwtAuthGuard],
67
63
  };
68
64
  }
69
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../src/auth.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,qCAAwC;AACxC,+CAAkD;AAClD,6CAAgD;AAChD,2CAA+C;AAC/C,yCAAmE;AACnE,6CAAwD;AACxD,+CAA+C;AAC/C,iDAAgD;AAEhD,2CAA0C;AAC1C,8CAA2D;AAC3D,oFAA+E;AAC/E,oEAA+D;AAC/D,qCAAgD;AAChD,qCAAwC;AACxC,wEAAkE;AAG3D,IAAM,UAAU,kBAAhB,MAAM,UAAU;IACrB,MAAM,CAAC,OAAO;QACZ,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,YAAY;QACjB,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,OAAO,EAAE;gBACP,yBAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;gBACnD,eAAS,CAAC,aAAa,CAAC;oBACtB,UAAU,EAAE,CAAC,aAA4B,EAAE,EAAE,CAAC,CAAC;wBAC7C,MAAM,EAAE,aAAa,CAAC,GAAG,CAAS,iBAAiB,CAAC;wBACpD,WAAW,EAAE;4BACX,SAAS,EAAE,aAAa,CAAC,GAAG,CAAM,oBAAoB,CAAC,IAAI,IAAI;yBAChE;qBACF,CAAC;oBACF,MAAM,EAAE,CAAC,sBAAa,CAAC;iBACxB,CAAC;gBACF,uBAAa,CAAC,UAAU,CAAC,CAAC,aAAI,EAAE,mBAAU,EAAE,aAAI,CAAC,CAAC;aACnD;YACD,WAAW,EAAE,CAAC,4BAAc,CAAC;YAC7B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,uBAAW;oBACpB,UAAU,EAAE,CAAC,aAA4B,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAa,MAAM,CAAC;oBACnF,MAAM,EAAE,CAAC,sBAAa,CAAC;iBACxB;gBACD,mDAAuB;gBACvB,sBAAW;gBACX,6BAAc;gBACd,uBAAY;gBACZ,wBAAW;gBACX,qBAAU;gBACV,wBAAW;gBACX,mCAAe;gBACf,qBAAY;gBACZ,wCAAiB;gBACjB,6BAAoB;aACrB;YACD,OAAO,EAAE,CAAC,sBAAW,EAAE,6BAAc,EAAE,qBAAY,EAAE,wCAAiB,EAAE,6BAAoB,CAAC;SAC9F,CAAC;IACJ,CAAC;CACF,CAAA;AA3CY,gCAAU;qBAAV,UAAU;IADtB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,UAAU,CA2CtB"}
1
+ {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../src/auth.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,qCAAwC;AACxC,+CAAkD;AAClD,6CAAgD;AAChD,2CAA+C;AAC/C,yCAAmE;AACnE,6CAAwD;AACxD,+CAA+C;AAC/C,iDAAgD;AAEhD,2CAA0C;AAC1C,8CAA2D;AAC3D,oFAA+E;AAC/E,oEAA+D;AAC/D,qCAAwC;AAGjC,IAAM,UAAU,kBAAhB,MAAM,UAAU;IACrB,MAAM,CAAC,OAAO;QACZ,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,YAAY;QACjB,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,OAAO,EAAE;gBACP,yBAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;gBACnD,eAAS,CAAC,aAAa,CAAC;oBACtB,UAAU,EAAE,CAAC,aAA4B,EAAE,EAAE,CAAC,CAAC;wBAC7C,MAAM,EAAE,aAAa,CAAC,GAAG,CAAS,iBAAiB,CAAC;wBACpD,WAAW,EAAE;4BACX,SAAS,EAAE,aAAa,CAAC,GAAG,CAAM,oBAAoB,CAAC,IAAI,IAAI;yBAChE;qBACF,CAAC;oBACF,MAAM,EAAE,CAAC,sBAAa,CAAC;iBACxB,CAAC;gBACF,uBAAa,CAAC,UAAU,CAAC,CAAC,aAAI,EAAE,mBAAU,EAAE,aAAI,CAAC,CAAC;aACnD;YACD,WAAW,EAAE,CAAC,4BAAc,CAAC;YAC7B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,uBAAW;oBACpB,UAAU,EAAE,CAAC,aAA4B,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAa,MAAM,CAAC;oBACnF,MAAM,EAAE,CAAC,sBAAa,CAAC;iBACxB;gBACD,mDAAuB;gBACvB,sBAAW;gBACX,6BAAc;gBACd,uBAAY;gBACZ,wBAAW;gBACX,qBAAU;gBACV,wBAAW;gBACX,mCAAe;gBACf,qBAAY;aACb;YACD,OAAO,EAAE,CAAC,sBAAW,EAAE,6BAAc,EAAE,qBAAY,CAAC;SACrD,CAAC;IACJ,CAAC;CACF,CAAA;AAzCY,gCAAU;qBAAV,UAAU;IADtB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,UAAU,CAyCtB"}
@@ -2,6 +2,7 @@ import { AuthService, TokenService } from '../services';
2
2
  import { CurrentUserInterface, UserResponseDto } from '@loopstack/shared';
3
3
  import { WorkerInfoDto } from '../dtos/worker-info.dto';
4
4
  import { HubLoginRequestDto } from '../dtos/hub-login-request.dto';
5
+ import { HubLoginResponseDto } from '../dtos/hub-login-response.dto';
5
6
  export declare class AuthController {
6
7
  private readonly authService;
7
8
  private readonly tokenService;
@@ -15,7 +16,5 @@ export declare class AuthController {
15
16
  }>;
16
17
  me(user: CurrentUserInterface): Promise<UserResponseDto>;
17
18
  getInfo(): WorkerInfoDto;
18
- hubLogin(hubLoginRequestDto: HubLoginRequestDto, req: any, res: any): Promise<{
19
- message: string;
20
- }>;
19
+ hubLogin(hubLoginRequestDto: HubLoginRequestDto, req: any, res: any): Promise<HubLoginResponseDto>;
21
20
  }
@@ -21,6 +21,7 @@ const hub_auth_guard_1 = require("../guards/hub-auth.guard");
21
21
  const worker_info_dto_1 = require("../dtos/worker-info.dto");
22
22
  const api_response_decorator_1 = require("@nestjs/swagger/dist/decorators/api-response.decorator");
23
23
  const hub_login_request_dto_1 = require("../dtos/hub-login-request.dto");
24
+ const hub_login_response_dto_1 = require("../dtos/hub-login-response.dto");
24
25
  let AuthController = class AuthController {
25
26
  authService;
26
27
  tokenService;
@@ -53,7 +54,7 @@ let AuthController = class AuthController {
53
54
  async hubLogin(hubLoginRequestDto, req, res) {
54
55
  const tokens = await this.authService.login(req.user);
55
56
  this.setCookies(res, tokens);
56
- return { message: 'Login successful' };
57
+ return { id: req.user.id, message: 'Login successful' };
57
58
  }
58
59
  };
59
60
  exports.AuthController = AuthController;
@@ -99,6 +100,7 @@ __decorate([
99
100
  (0, swagger_1.ApiOperation)({ summary: 'Login via Hub' }),
100
101
  (0, swagger_1.ApiBody)({ type: hub_login_request_dto_1.HubLoginRequestDto }),
101
102
  (0, swagger_1.ApiExtraModels)(hub_login_request_dto_1.HubLoginRequestDto),
103
+ (0, api_response_decorator_1.ApiResponse)({ type: hub_login_response_dto_1.HubLoginResponseDto }),
102
104
  (0, swagger_1.ApiOkResponse)(),
103
105
  (0, swagger_1.ApiUnauthorizedResponse)(),
104
106
  __param(0, (0, common_1.Body)()),
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/controllers/auth.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/controllers/auth.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare class HubLoginResponseDto {
2
+ id: string;
3
+ message: string;
4
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.HubLoginResponseDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const swagger_1 = require("@nestjs/swagger");
15
+ class HubLoginResponseDto {
16
+ id;
17
+ message;
18
+ }
19
+ exports.HubLoginResponseDto = HubLoginResponseDto;
20
+ __decorate([
21
+ (0, class_transformer_1.Expose)(),
22
+ (0, swagger_1.ApiProperty)({ description: 'The logged in user id' }),
23
+ __metadata("design:type", String)
24
+ ], HubLoginResponseDto.prototype, "id", void 0);
25
+ __decorate([
26
+ (0, class_transformer_1.Expose)(),
27
+ (0, swagger_1.ApiProperty)({ description: 'A message' }),
28
+ __metadata("design:type", String)
29
+ ], HubLoginResponseDto.prototype, "message", void 0);
30
+ //# sourceMappingURL=hub-login-response.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-login-response.dto.js","sourceRoot":"","sources":["../../src/dtos/hub-login-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAA2C;AAC3C,6CAA8C;AAE9C,MAAa,mBAAmB;IAG9B,EAAE,CAAS;IAIX,OAAO,CAAS;CACjB;AARD,kDAQC;AALC;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;;+CAC3C;AAIX;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;;oDAC1B"}
@@ -1,3 +1,2 @@
1
1
  export * from './jwt-auth.guard';
2
2
  export * from './roles.guard';
3
- export * from './conditional-auth.guard';
@@ -16,5 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./jwt-auth.guard"), exports);
18
18
  __exportStar(require("./roles.guard"), exports);
19
- __exportStar(require("./conditional-auth.guard"), exports);
20
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guards/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAgC;AAChC,gDAA6B;AAC7B,2DAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guards/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAgC;AAChC,gDAA6B"}
@@ -15,6 +15,7 @@ const core_1 = require("@nestjs/core");
15
15
  const passport_1 = require("@nestjs/passport");
16
16
  const shared_1 = require("@loopstack/shared");
17
17
  const config_1 = require("@nestjs/config");
18
+ const user_type_enum_1 = require("@loopstack/shared/dist/enums/user-type.enum");
18
19
  let JwtAuthGuard = class JwtAuthGuard extends (0, passport_1.AuthGuard)('jwt') {
19
20
  reflector;
20
21
  configService;
@@ -36,6 +37,10 @@ let JwtAuthGuard = class JwtAuthGuard extends (0, passport_1.AuthGuard)('jwt') {
36
37
  return false;
37
38
  }
38
39
  const { user } = context.switchToHttp().getRequest();
40
+ const isLocalDevMode = this.configService.get('app.isLocalMode');
41
+ if (isLocalDevMode) {
42
+ return user.type === user_type_enum_1.UserTypeEnum.Local;
43
+ }
39
44
  const clientId = this.configService.get('auth.clientId');
40
45
  return clientId === user.workerId;
41
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"jwt-auth.guard.js","sourceRoot":"","sources":["../../src/guards/jwt-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA8D;AAC9D,uCAAyC;AACzC,+CAA6C;AAC7C,8CAAwE;AACxE,2CAA+C;AAGxC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,IAAA,oBAAS,EAAC,KAAK,CAAC;IAE7B;IACA;IAFnB,YACmB,SAAoB,EACpB,aAA4B;QAE7C,KAAK,EAAE,CAAC;QAHS,cAAS,GAAT,SAAS,CAAW;QACpB,kBAAa,GAAb,aAAa,CAAe;IAG/C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,sBAAa,EAAE;YACxE,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,CAAC;QACH,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAGD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAOD,MAAM,EAAE,IAAI,EAAE,GAAmC,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,eAAe,CAAC,CAAC;QACjE,OAAO,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC;IACpC,CAAC;CACF,CAAA;AAjCY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAGmB,gBAAS;QACL,sBAAa;GAHpC,YAAY,CAiCxB"}
1
+ {"version":3,"file":"jwt-auth.guard.js","sourceRoot":"","sources":["../../src/guards/jwt-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA8D;AAC9D,uCAAyC;AACzC,+CAA6C;AAC7C,8CAAwE;AACxE,2CAA+C;AAC/C,gFAA2E;AAGpE,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,IAAA,oBAAS,EAAC,KAAK,CAAC;IAE7B;IACA;IAFnB,YACmB,SAAoB,EACpB,aAA4B;QAE7C,KAAK,EAAE,CAAC;QAHS,cAAS,GAAT,SAAS,CAAW;QACpB,kBAAa,GAAb,aAAa,CAAe;IAG/C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,sBAAa,EAAE;YACxE,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,CAAC;QACH,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAGD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,GAAmC,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAGrF,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAU,iBAAiB,CAAC,CAAC;QAC1E,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,IAAI,KAAK,6BAAY,CAAC,KAAK,CAAC;QAC1C,CAAC;QAOD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,eAAe,CAAC,CAAC;QACjE,OAAO,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC;IACpC,CAAC;CACF,CAAA;AAxCY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAGmB,gBAAS;QACL,sBAAa;GAHpC,YAAY,CAwCxB"}
@@ -4,6 +4,7 @@ export declare class UserRepository {
4
4
  private repository;
5
5
  constructor(repository: Repository<User>);
6
6
  findById(id: string): Promise<User | null>;
7
+ findLocalUser(): Promise<User | null>;
7
8
  create(userData: Partial<User>): Promise<User>;
8
9
  update(id: string, userData: Partial<User>): Promise<User | null>;
9
10
  getRepository(): Repository<User>;
@@ -17,6 +17,7 @@ const common_1 = require("@nestjs/common");
17
17
  const typeorm_1 = require("@nestjs/typeorm");
18
18
  const typeorm_2 = require("typeorm");
19
19
  const shared_1 = require("@loopstack/shared");
20
+ const user_type_enum_1 = require("@loopstack/shared/dist/enums/user-type.enum");
20
21
  let UserRepository = class UserRepository {
21
22
  repository;
22
23
  constructor(repository) {
@@ -28,6 +29,14 @@ let UserRepository = class UserRepository {
28
29
  relations: ['roles', 'roles.permissions'],
29
30
  });
30
31
  }
32
+ async findLocalUser() {
33
+ return this.repository.findOne({
34
+ where: {
35
+ type: user_type_enum_1.UserTypeEnum.Local
36
+ },
37
+ relations: ['roles', 'roles.permissions'],
38
+ });
39
+ }
31
40
  async create(userData) {
32
41
  const user = this.repository.create(userData);
33
42
  return this.repository.save(user);
@@ -1 +1 @@
1
- {"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../src/repositories/user.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,8CAAyC;AAGlC,IAAM,cAAc,GAApB,MAAM,cAAc;IAGf;IAFV,YAEU,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IACnC,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC7B,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAuB;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,QAAuB;QAC9C,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF,CAAA;AA1BY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,aAAI,CAAC,CAAA;qCACH,oBAAU;GAHrB,cAAc,CA0B1B"}
1
+ {"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../src/repositories/user.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,8CAAyC;AACzC,gFAA2E;AAGpE,IAAM,cAAc,GAApB,MAAM,cAAc;IAGf;IAFV,YAEU,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IACnC,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC7B,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC7B,KAAK,EAAE;gBACL,IAAI,EAAE,6BAAY,CAAC,KAAK;aACzB;YACD,SAAS,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAuB;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,QAAuB;QAC9C,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF,CAAA;AAnCY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,aAAI,CAAC,CAAA;qCACH,oBAAU;GAHrB,cAAc,CAmC1B"}
@@ -29,6 +29,7 @@ let AuthService = class AuthService {
29
29
  const workerId = this.configService.get('auth.clientId');
30
30
  const payload = {
31
31
  sub: user.id,
32
+ type: user.type,
32
33
  roles: user.roles?.map(role => role.name) || [],
33
34
  workerId,
34
35
  };
@@ -47,6 +48,7 @@ let AuthService = class AuthService {
47
48
  }
48
49
  const newPayload = {
49
50
  sub: payload.sub,
51
+ type: payload.type,
50
52
  workerId: payload.workerId,
51
53
  roles: user.roles?.map(role => role.name) || [],
52
54
  };
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { HubService } from '../services';
3
3
  import { Request } from 'express';
4
4
  import { UserRepository } from '../repositories';
5
5
  import { ConfigService } from '@nestjs/config';
6
+ import { User } from '@loopstack/shared';
6
7
  declare const HubStrategy_base: new () => Strategy & {
7
8
  validate(...args: any[]): unknown;
8
9
  };
@@ -12,6 +13,8 @@ export declare class HubStrategy extends HubStrategy_base {
12
13
  private readonly userRepository;
13
14
  private readonly logger;
14
15
  constructor(configService: ConfigService, hubService: HubService, userRepository: UserRepository);
15
- validate(req: Request): Promise<any>;
16
+ private validateLocalUser;
17
+ private validateCloudUser;
18
+ validate(req: Request): Promise<User>;
16
19
  }
17
20
  export {};
@@ -17,6 +17,8 @@ const passport_custom_1 = require("passport-custom");
17
17
  const services_1 = require("../services");
18
18
  const repositories_1 = require("../repositories");
19
19
  const config_1 = require("@nestjs/config");
20
+ const user_type_enum_1 = require("@loopstack/shared/dist/enums/user-type.enum");
21
+ const uuid_1 = require("uuid");
20
22
  let HubStrategy = HubStrategy_1 = class HubStrategy extends (0, passport_1.PassportStrategy)(passport_custom_1.Strategy, 'hub') {
21
23
  configService;
22
24
  hubService;
@@ -28,32 +30,52 @@ let HubStrategy = HubStrategy_1 = class HubStrategy extends (0, passport_1.Passp
28
30
  this.hubService = hubService;
29
31
  this.userRepository = userRepository;
30
32
  }
33
+ async validateLocalUser() {
34
+ const existingUser = await this.userRepository.findLocalUser();
35
+ if (existingUser) {
36
+ return existingUser;
37
+ }
38
+ const user = await this.userRepository.create({
39
+ id: (0, uuid_1.v4)(),
40
+ type: user_type_enum_1.UserTypeEnum.Local,
41
+ isActive: true,
42
+ roles: [],
43
+ });
44
+ this.logger.log(`Local authentication successful for user ${user.id}`);
45
+ return user;
46
+ }
47
+ async validateCloudUser(req) {
48
+ const { code, grantType } = req.body;
49
+ this.logger.log('Validating SSO token exchange request');
50
+ if (!code || grantType !== 'authorization_code') {
51
+ throw new common_1.UnauthorizedException('Invalid grant type or missing code');
52
+ }
53
+ const validateCodeResponse = await this.hubService.exchangeCodeForUserInfo(code);
54
+ if (!validateCodeResponse.data?.id) {
55
+ throw new common_1.UnauthorizedException('Code exchange failed');
56
+ }
57
+ const existingUser = await this.userRepository.findById(validateCodeResponse.data?.id);
58
+ if (existingUser) {
59
+ return existingUser;
60
+ }
61
+ const user = await this.userRepository.create({
62
+ id: validateCodeResponse.data?.id,
63
+ isActive: true,
64
+ roles: [],
65
+ });
66
+ this.logger.log(`SSO authentication successful for user ${user.id}`);
67
+ return user;
68
+ }
31
69
  async validate(req) {
32
70
  try {
33
- const { code, grantType } = req.body;
34
- this.logger.log('Validating SSO token exchange request');
35
- if (!code || grantType !== 'authorization_code') {
36
- throw new common_1.UnauthorizedException('Invalid grant type or missing code');
37
- }
38
- const validateCodeResponse = await this.hubService.exchangeCodeForUserInfo(code);
39
- if (!validateCodeResponse.data?.id) {
40
- throw new common_1.UnauthorizedException('Code exchange failed');
41
- }
42
- const existingUser = await this.userRepository.findById(validateCodeResponse.data?.id);
43
- if (existingUser) {
44
- return existingUser;
71
+ const isLocalDevMode = this.configService.get('app.isLocalMode');
72
+ if (isLocalDevMode) {
73
+ return this.validateLocalUser();
45
74
  }
46
- const user = await this.userRepository.create({
47
- id: validateCodeResponse.data?.id,
48
- isActive: true,
49
- roles: [],
50
- });
51
- this.logger.log(`SSO validation successful for user ${user.id}`);
52
- return user;
75
+ return this.validateCloudUser(req);
53
76
  }
54
77
  catch (error) {
55
- this.logger.error('SSO validation failed:', error);
56
- throw new common_1.UnauthorizedException('SSO authentication failed');
78
+ throw new common_1.UnauthorizedException('Authentication failed.');
57
79
  }
58
80
  }
59
81
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hub.strategy.js","sourceRoot":"","sources":["../../src/strategies/hub.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA2E;AAC3E,+CAAoD;AACpD,qDAA2C;AAC3C,0CAAyC;AAEzC,kDAAiD;AACjD,2CAA+C;AAGxC,IAAM,WAAW,mBAAjB,MAAM,WAAY,SAAQ,IAAA,2BAAgB,EAAC,0BAAQ,EAAE,KAAK,CAAC;IAI7C;IACA;IACA;IALF,MAAM,GAAG,IAAI,eAAM,CAAC,aAAW,CAAC,IAAI,CAAC,CAAC;IAEvD,YACmB,aAA4B,EAC5B,UAAsB,EACtB,cAA8B;QAE/C,KAAK,EAAE,CAAC;QAJS,kBAAa,GAAb,aAAa,CAAe;QAC5B,eAAU,GAAV,UAAU,CAAY;QACtB,mBAAc,GAAd,cAAc,CAAgB;IAGjD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAY;QACzB,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAErC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YAEzD,IAAI,CAAC,IAAI,IAAI,SAAS,KAAK,oBAAoB,EAAE,CAAC;gBAChD,MAAM,IAAI,8BAAqB,CAAC,oCAAoC,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACjF,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;gBACnC,MAAM,IAAI,8BAAqB,CAAC,sBAAsB,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvF,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,YAAY,CAAC;YACtB,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC5C,EAAE,EAAE,oBAAoB,CAAC,IAAI,EAAE,EAAE;gBACjC,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAEjE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,IAAI,8BAAqB,CAAC,2BAA2B,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF,CAAA;AA7CY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAKuB,sBAAa;QAChB,qBAAU;QACN,6BAAc;GANtC,WAAW,CA6CvB"}
1
+ {"version":3,"file":"hub.strategy.js","sourceRoot":"","sources":["../../src/strategies/hub.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA2E;AAC3E,+CAAoD;AACpD,qDAA2C;AAC3C,0CAAyC;AAEzC,kDAAiD;AACjD,2CAA+C;AAC/C,gFAA2E;AAC3E,+BAAoC;AAI7B,IAAM,WAAW,mBAAjB,MAAM,WAAY,SAAQ,IAAA,2BAAgB,EAAC,0BAAQ,EAAE,KAAK,CAAC;IAI7C;IACA;IACA;IALF,MAAM,GAAG,IAAI,eAAM,CAAC,aAAW,CAAC,IAAI,CAAC,CAAC;IAEvD,YACmB,aAA4B,EAC5B,UAAsB,EACtB,cAA8B;QAE/C,KAAK,EAAE,CAAC;QAJS,kBAAa,GAAb,aAAa,CAAe;QAC5B,eAAU,GAAV,UAAU,CAAY;QACtB,mBAAc,GAAd,cAAc,CAAgB;IAGjD,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QAC/D,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YAC5C,EAAE,EAAE,IAAA,SAAM,GAAE;YACZ,IAAI,EAAE,6BAAY,CAAC,KAAK;YACxB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4CAA4C,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAEvE,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,GAAY;QAC1C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QAEzD,IAAI,CAAC,IAAI,IAAI,SAAS,KAAK,oBAAoB,EAAE,CAAC;YAChD,MAAM,IAAI,8BAAqB,CAAC,oCAAoC,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACjF,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,8BAAqB,CAAC,sBAAsB,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvF,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YAC5C,EAAE,EAAE,oBAAoB,CAAC,IAAI,EAAE,EAAE;YACjC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0CAA0C,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAErE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAY;QACzB,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAU,iBAAiB,CAAC,CAAC;YAC1E,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAClC,CAAC;YAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,8BAAqB,CAAC,wBAAwB,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;CACF,CAAA;AAvEY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAKuB,sBAAa;QAChB,qBAAU;QACN,6BAAc;GANtC,WAAW,CAuEvB"}
@@ -6,6 +6,7 @@ export declare class JwtStrategy extends JwtStrategy_base {
6
6
  private static extractJWTFromCookie;
7
7
  validate(payload: JwtPayloadInterface): Promise<{
8
8
  userId: string;
9
+ type: import("@loopstack/shared/dist/enums/user-type.enum").UserTypeEnum;
9
10
  workerId: string;
10
11
  roles: string[];
11
12
  }>;
@@ -41,6 +41,7 @@ let JwtStrategy = JwtStrategy_1 = class JwtStrategy extends (0, passport_1.Passp
41
41
  async validate(payload) {
42
42
  return {
43
43
  userId: payload.sub,
44
+ type: payload.type,
44
45
  workerId: payload.workerId,
45
46
  roles: payload.roles,
46
47
  };
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.strategy.js","sourceRoot":"","sources":["../../src/strategies/jwt.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAAoD;AACpD,+CAAoD;AACpD,2CAAoD;AAGpD,4CAA2C;AAIpC,IAAM,WAAW,mBAAjB,MAAM,WAAY,SAAQ,IAAA,2BAAgB,EAAC,uBAAQ,CAAC;IACzD,YACuB,MAAkB;QAEvC,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,QAAQ,SAAS,CAAC;QAC/C,KAAK,CAAC;YACJ,cAAc,EAAE,yBAAU,CAAC,cAAc,CAAC;gBACxC,aAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC;gBAC5C,yBAAU,CAAC,2BAA2B,EAAE;aACzC,CAAC;YACF,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM;SAChC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,UAAkB;QACpD,OAAO,CAAC,GAAY,EAAiB,EAAE;YACrC,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAA4B;QACzC,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,GAAG;YACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;IACJ,CAAC;CACF,CAAA;AA/BY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,uBAAW,CAAC,CAAA;;GAFX,WAAW,CA+BvB"}
1
+ {"version":3,"file":"jwt.strategy.js","sourceRoot":"","sources":["../../src/strategies/jwt.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAAoD;AACpD,+CAAoD;AACpD,2CAAoD;AAGpD,4CAA2C;AAIpC,IAAM,WAAW,mBAAjB,MAAM,WAAY,SAAQ,IAAA,2BAAgB,EAAC,uBAAQ,CAAC;IACzD,YACuB,MAAkB;QAEvC,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,QAAQ,SAAS,CAAC;QAC/C,KAAK,CAAC;YACJ,cAAc,EAAE,yBAAU,CAAC,cAAc,CAAC;gBACxC,aAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC;gBAC5C,yBAAU,CAAC,2BAA2B,EAAE;aACzC,CAAC;YACF,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM;SAChC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,UAAkB;QACpD,OAAO,CAAC,GAAY,EAAiB,EAAE;YACrC,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAA4B;QACzC,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,GAAG;YACnB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;IACJ,CAAC;CACF,CAAA;AAhCY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,uBAAW,CAAC,CAAA;;GAFX,WAAW,CAgCvB"}