@nolag/core 0.4.0 → 0.5.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.
@@ -31,5 +31,6 @@ export declare class ActorTokenFacade {
31
31
  updateActorState(actorTokenId: string, connectionState: IConnectionState, krakenNodeId?: string): Promise<ActorTokenStateEntity>;
32
32
  getActorState(actorTokenId: string): Promise<ActorTokenStateEntity | null>;
33
33
  clearActorState(actorTokenId: string): Promise<void>;
34
+ private _assertScopeInProject;
34
35
  }
35
36
  //# sourceMappingURL=actorToken.facade.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actorToken.facade.d.ts","sourceRoot":"","sources":["../../../src/modules/actorTokenModule/actorToken.facade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actorToken.facade.d.ts","sourceRoot":"","sources":["../../../src/modules/actorTokenModule/actorToken.facade.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ const common_1 = require("@nestjs/common");
18
18
  const typeorm_1 = require("@nestjs/typeorm");
19
19
  const typeorm_2 = require("typeorm");
20
20
  const exceptions_1 = require("../../utils/exceptions");
21
+ const accessScope_entity_1 = require("../accessScopeModule/accessScope.entity");
21
22
  const actorToken_service_1 = require("./actorToken.service");
22
23
  const actorTokenState_entity_1 = require("./actorTokenState.entity");
23
24
  const actorTokenState_repository_1 = require("./actorTokenState.repository");
@@ -77,7 +78,10 @@ let ActorTokenFacade = ActorTokenFacade_1 = class ActorTokenFacade {
77
78
  return this._actorTokenService.listByProjectId(projectId);
78
79
  }
79
80
  createActorToken(projectId, data) {
80
- return this._dataSource.transaction((manager) => this._actorTokenService.createActorToken(projectId, data, manager));
81
+ return this._dataSource.transaction(async (manager) => {
82
+ await this._assertScopeInProject(projectId, data.accessScopeId, manager);
83
+ return this._actorTokenService.createActorToken(projectId, data, manager);
84
+ });
81
85
  }
82
86
  updateActorToken(actorTokenId, projectId, data) {
83
87
  return this._dataSource.transaction(async (manager) => {
@@ -87,6 +91,7 @@ let ActorTokenFacade = ActorTokenFacade_1 = class ActorTokenFacade {
87
91
  errorMsgUser: `Actor token ${actorTokenId} not found`,
88
92
  });
89
93
  }
94
+ await this._assertScopeInProject(projectId, data.accessScopeId, manager);
90
95
  return this._actorTokenService.patchActorToken(actorTokenId, projectId, data, manager);
91
96
  });
92
97
  }
@@ -111,6 +116,19 @@ let ActorTokenFacade = ActorTokenFacade_1 = class ActorTokenFacade {
111
116
  clearActorState(actorTokenId) {
112
117
  return this._stateRepository.clearState(actorTokenId);
113
118
  }
119
+ async _assertScopeInProject(projectId, accessScopeId, manager) {
120
+ if (typeof accessScopeId !== "string") {
121
+ return;
122
+ }
123
+ const count = await manager.count(accessScope_entity_1.AccessScopeEntity, {
124
+ where: { accessScopeId, projectId, deletedAt: (0, typeorm_2.IsNull)() },
125
+ });
126
+ if (count === 0) {
127
+ throw (0, exceptions_1.badRequestException)(this._logger, {
128
+ errorMsgUser: `Access scope ${accessScopeId} does not belong to this project`,
129
+ });
130
+ }
131
+ }
114
132
  };
115
133
  exports.ActorTokenFacade = ActorTokenFacade;
116
134
  exports.ActorTokenFacade = ActorTokenFacade = ActorTokenFacade_1 = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"authz.module.d.ts","sourceRoot":"","sources":["../../../src/modules/authzModule/authz.module.ts"],"names":[],"mappings":"AAuBA,qBAqBa,WAAW;CAAG"}
1
+ {"version":3,"file":"authz.module.d.ts","sourceRoot":"","sources":["../../../src/modules/authzModule/authz.module.ts"],"names":[],"mappings":"AAuBA,qBAoBa,WAAW;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"authz.service.d.ts","sourceRoot":"","sources":["../../../src/modules/authzModule/authz.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAc,MAAM,SAAS,CAAC;AAKhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAIzE,OAAO,EACL,UAAU,EAEX,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAc/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAKL,qBAAqB,EACrB,0BAA0B,EAE1B,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AAkCzB,qBACa,YAAY;IAKrB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;gBAItC,WAAW,EAAE,UAAU,EACvB,iBAAiB,EAAE,gBAAgB,EACnC,iBAAiB,EAAE,gBAAgB,EACnC,OAAO,EAAE,UAAU;IAShC,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;YAsC7D,oBAAoB;IAwD5B,eAAe,CACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,0BAA0B,CAAC;YA4DxB,oBAAoB;YA+CpB,aAAa;IAiC3B,OAAO,CAAC,cAAc;IAoChB,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC;IA+JjC,OAAO,CAAC,kBAAkB;YAmCZ,eAAe;YAyNf,cAAc;IA6D5B,OAAO,CAAC,sBAAsB;YA4BhB,mCAAmC;IA4D3C,kBAAkB,CACtB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,GAAG,aAAa,EACnC,OAAO,EAAE,aAAa,EACtB,WAAW,CAAC,EAAE,OAAO,EACrB,gBAAgB,CAAC,EAAE,MAAM,EACzB,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC;IAiDV,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBvD,aAAa,CACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAqBvE,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO;CAG7D"}
1
+ {"version":3,"file":"authz.service.d.ts","sourceRoot":"","sources":["../../../src/modules/authzModule/authz.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAc,MAAM,SAAS,CAAC;AAKhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAIzE,OAAO,EACL,UAAU,EAEX,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAc/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAKL,qBAAqB,EACrB,0BAA0B,EAE1B,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AA2CzB,qBACa,YAAY;IAKrB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;gBAItC,WAAW,EAAE,UAAU,EACvB,iBAAiB,EAAE,gBAAgB,EACnC,iBAAiB,EAAE,gBAAgB,EACnC,OAAO,EAAE,UAAU;IAShC,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;YAsC7D,oBAAoB;IA4D5B,eAAe,CACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,0BAA0B,CAAC;YAiExB,oBAAoB;YAyDpB,aAAa;IAqC3B,OAAO,CAAC,cAAc;IAoChB,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC;IAsKjC,OAAO,CAAC,kBAAkB;YAmCZ,eAAe;YAyNf,cAAc;IA6D5B,OAAO,CAAC,sBAAsB;YA4BhB,mCAAmC;IA4D3C,kBAAkB,CACtB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,GAAG,aAAa,EACnC,OAAO,EAAE,aAAa,EACtB,WAAW,CAAC,EAAE,OAAO,EACrB,gBAAgB,CAAC,EAAE,MAAM,EACzB,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC;IAiDV,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBvD,aAAa,CACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAqBvE,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO;CAG7D"}
@@ -63,11 +63,11 @@ let AuthzService = AuthzService_1 = class AuthzService {
63
63
  if (actorToken.expiresAt && new Date(actorToken.expiresAt) < new Date()) {
64
64
  return { valid: false, error: "token_expired" };
65
65
  }
66
- const payload = await this._buildSessionPayload(actorToken);
67
- if (!payload) {
68
- return { valid: false, error: "project_not_found" };
66
+ const built = await this._buildSessionPayload(actorToken);
67
+ if (!built.ok) {
68
+ return { valid: false, error: built.reason };
69
69
  }
70
- return { valid: true, ...payload };
70
+ return { valid: true, ...built.payload };
71
71
  }
72
72
  async _validateClientToken(token) {
73
73
  const deny = {
@@ -94,11 +94,15 @@ let AuthzService = AuthzService_1 = class AuthzService {
94
94
  });
95
95
  return deny;
96
96
  }
97
- const payload = await this._buildSessionPayload(actorToken);
98
- if (!payload) {
99
- return { valid: false, error: "project_not_found" };
97
+ const built = await this._buildSessionPayload(actorToken);
98
+ if (!built.ok) {
99
+ return { valid: false, error: built.reason };
100
100
  }
101
- return { valid: true, ...payload, authExpiresAt: verified.payload.exp };
101
+ return {
102
+ valid: true,
103
+ ...built.payload,
104
+ authExpiresAt: verified.payload.exp,
105
+ };
102
106
  }
103
107
  async revalidateActor(actorTokenId) {
104
108
  const actorToken = await this._dataSource.manager.findOne(actorToken_entity_1.ActorTokenEntity, {
@@ -131,28 +135,35 @@ let AuthzService = AuthzService_1 = class AuthzService {
131
135
  disconnectReason: "token_expired",
132
136
  };
133
137
  }
134
- const payload = await this._buildSessionPayload(actorToken);
135
- if (!payload) {
138
+ const built = await this._buildSessionPayload(actorToken);
139
+ if (!built.ok) {
140
+ this._logger.warn("revalidateActor: session denied", {
141
+ actorTokenId,
142
+ reason: built.reason,
143
+ });
136
144
  return {
137
145
  valid: false,
138
- error: "project_not_found",
139
- disconnectReason: "project_not_found",
146
+ error: built.reason,
147
+ disconnectReason: built.reason,
140
148
  };
141
149
  }
142
- return { valid: true, ...payload };
150
+ return { valid: true, ...built.payload };
143
151
  }
144
152
  async _buildSessionPayload(actorToken) {
145
153
  const project = await this._dataSource.manager.findOne(project_entity_1.ProjectEntity, {
146
154
  where: { projectId: actorToken.projectId, deletedAt: (0, typeorm_2.IsNull)() },
147
155
  });
148
156
  if (!project) {
149
- return null;
157
+ return { ok: false, reason: "project_not_found" };
150
158
  }
151
159
  const scope = await this._resolveScope(actorToken);
160
+ if (!scope) {
161
+ return { ok: false, reason: "scope_inactive" };
162
+ }
152
163
  const { apps } = await this._buildAppAccess(actorToken, scope.scopeId, scope.scopeSlug);
153
164
  const limits = this._resolveLimits(project);
154
165
  const persistentSession = EActorType_enum_1.PERSISTENT_SESSION_ACTOR_TYPES.includes(actorToken.actorType);
155
- return {
166
+ const payload = {
156
167
  actorTokenId: actorToken.actorTokenId,
157
168
  organizationId: project.organizationId,
158
169
  projectId: actorToken.projectId,
@@ -167,16 +178,21 @@ let AuthzService = AuthzService_1 = class AuthzService {
167
178
  sessionExpirySeconds: persistentSession ? limits.sessionExpirySeconds : 0,
168
179
  persistentSession,
169
180
  };
181
+ return { ok: true, payload };
170
182
  }
171
183
  async _resolveScope(actorToken) {
172
184
  if (!actorToken.accessScopeId) {
173
185
  return {};
174
186
  }
175
187
  const scope = await this._dataSource.manager.findOne(accessScope_entity_1.AccessScopeEntity, {
176
- where: { accessScopeId: actorToken.accessScopeId, deletedAt: (0, typeorm_2.IsNull)() },
188
+ where: {
189
+ accessScopeId: actorToken.accessScopeId,
190
+ projectId: actorToken.projectId,
191
+ deletedAt: (0, typeorm_2.IsNull)(),
192
+ },
177
193
  });
178
194
  if (!scope || !scope.isActive) {
179
- return {};
195
+ return null;
180
196
  }
181
197
  return {
182
198
  scopeId: scope.accessScopeId,
@@ -216,6 +232,9 @@ let AuthzService = AuthzService_1 = class AuthzService {
216
232
  return deny;
217
233
  }
218
234
  const scope = await this._resolveScope(actorToken);
235
+ if (!scope) {
236
+ return deny;
237
+ }
219
238
  const parts = pattern.split("/");
220
239
  let appSlug;
221
240
  let roomSlug;
@@ -57,7 +57,7 @@ export declare class SubscriptionUpdateRequestDto {
57
57
  loadBalanceGroup?: string;
58
58
  filters?: string[];
59
59
  }
60
- export type AuthzDenyReason = "token_invalid" | "token_suspended" | "token_expired" | "token_not_found" | "project_not_found";
60
+ export type AuthzDenyReason = "token_invalid" | "token_suspended" | "token_expired" | "token_not_found" | "project_not_found" | "scope_inactive";
61
61
  export interface ActorSessionPayload {
62
62
  actorTokenId: string;
63
63
  organizationId: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"authz.dto.d.ts","sourceRoot":"","sources":["../../../../src/modules/authzModule/dto/authz.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authz.dto.d.ts","sourceRoot":"","sources":["../../../../src/modules/authzModule/dto/authz.dto.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nolag/core",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "The authorization domain of NoLag, as a library",
5
5
  "license": "Apache-2.0",
6
6
  "private": false,