@drax/identity-back 0.0.31 → 0.1.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.
Files changed (97) hide show
  1. package/dist/config/IdentityConfig.js +2 -3
  2. package/dist/factory/RoleServiceFactory.js +8 -7
  3. package/dist/factory/TenantServiceFactory.js +8 -7
  4. package/dist/factory/UserApiKeyServiceFactory.js +24 -0
  5. package/dist/factory/UserServiceFactory.js +8 -7
  6. package/dist/graphql/resolvers/user-api-key.resolvers.js +89 -0
  7. package/dist/graphql/resolvers/user.resolvers.js +7 -2
  8. package/dist/graphql/types/userApiKey.graphql +33 -0
  9. package/dist/index.js +4 -2
  10. package/dist/interfaces/IUserApiKeyRepository.js +1 -0
  11. package/dist/middleware/apiKeyMiddleware.js +30 -0
  12. package/dist/middleware/rbacMiddleware.js +0 -1
  13. package/dist/models/UserApiKeyModel.js +44 -0
  14. package/dist/permissions/IdentityPermissions.js +6 -0
  15. package/dist/rbac/Rbac.js +8 -0
  16. package/dist/repository/mongo/UserApiKeyMongoRepository.js +82 -0
  17. package/dist/repository/mongo/UserMongoRepository.js +3 -3
  18. package/dist/repository/sqlite/RoleSqliteRepository.js +16 -18
  19. package/dist/repository/sqlite/TenantSqliteRepository.js +13 -11
  20. package/dist/repository/sqlite/UserApiKeySqliteRepository.js +147 -0
  21. package/dist/repository/sqlite/UserSqliteRepository.js +29 -26
  22. package/dist/routes/UserApiKeyRoutes.js +119 -0
  23. package/dist/routes/UserRoutes.js +5 -1
  24. package/dist/services/UserApiKeyService.js +65 -0
  25. package/dist/setup/LoadIdentityConfigFromEnv.js +3 -3
  26. package/dist/utils/AuthUtils.js +10 -0
  27. package/dist/zod/UserApiKeyZod.js +9 -0
  28. package/package.json +7 -6
  29. package/src/config/IdentityConfig.ts +4 -3
  30. package/src/factory/RoleServiceFactory.ts +11 -11
  31. package/src/factory/TenantServiceFactory.ts +11 -11
  32. package/src/factory/UserApiKeyServiceFactory.ts +30 -0
  33. package/src/factory/UserServiceFactory.ts +8 -7
  34. package/src/graphql/resolvers/tenant.resolvers.ts +0 -1
  35. package/src/graphql/resolvers/user-api-key.resolvers.ts +94 -0
  36. package/src/graphql/resolvers/user.resolvers.ts +9 -2
  37. package/src/graphql/types/userApiKey.graphql +33 -0
  38. package/src/index.ts +10 -0
  39. package/src/interfaces/IUserApiKeyRepository.ts +8 -0
  40. package/src/middleware/apiKeyMiddleware.ts +35 -0
  41. package/src/middleware/rbacMiddleware.ts +1 -2
  42. package/src/models/UserApiKeyModel.ts +59 -0
  43. package/src/permissions/IdentityPermissions.ts +7 -0
  44. package/src/rbac/Rbac.ts +13 -2
  45. package/src/repository/mongo/UserApiKeyMongoRepository.ts +114 -0
  46. package/src/repository/mongo/UserMongoRepository.ts +3 -3
  47. package/src/repository/sqlite/RoleSqliteRepository.ts +28 -20
  48. package/src/repository/sqlite/TenantSqliteRepository.ts +25 -11
  49. package/src/repository/sqlite/UserApiKeySqliteRepository.ts +197 -0
  50. package/src/repository/sqlite/UserSqliteRepository.ts +37 -27
  51. package/src/routes/UserApiKeyRoutes.ts +128 -0
  52. package/src/routes/UserRoutes.ts +5 -1
  53. package/src/services/UserApiKeyService.ts +86 -0
  54. package/src/setup/LoadIdentityConfigFromEnv.ts +5 -3
  55. package/src/utils/AuthUtils.ts +11 -0
  56. package/src/zod/UserApiKeyZod.ts +15 -0
  57. package/test/data-obj/apikey/root-mongo-user-apikey.ts +10 -0
  58. package/test/data-obj/roles/admin-mongo-role.ts +0 -3
  59. package/test/initializers/RoleMongoInitializer.ts +1 -0
  60. package/test/initializers/RoleSqliteInitializer.ts +1 -0
  61. package/test/initializers/UserMongoInitializer.ts +18 -0
  62. package/test/repository/mongo/user-apikey-mongo-repository.test.ts +73 -0
  63. package/tsconfig.tsbuildinfo +1 -1
  64. package/types/factory/RoleServiceFactory.d.ts.map +1 -1
  65. package/types/factory/TenantServiceFactory.d.ts.map +1 -1
  66. package/types/factory/UserApiKeyServiceFactory.d.ts.map +1 -0
  67. package/types/factory/UserServiceFactory.d.ts.map +1 -1
  68. package/types/graphql/resolvers/tenant.resolvers.d.ts.map +1 -1
  69. package/types/graphql/resolvers/user-api-key.resolvers.d.ts.map +1 -0
  70. package/types/graphql/resolvers/user.resolvers.d.ts.map +1 -1
  71. package/types/index.d.ts.map +1 -1
  72. package/types/interfaces/IUserApiKeyRepository.d.ts.map +1 -0
  73. package/types/middleware/apiKeyMiddleware.d.ts.map +1 -0
  74. package/types/middleware/rbacMiddleware.d.ts.map +1 -1
  75. package/types/models/UserApiKeyModel.d.ts.map +1 -0
  76. package/types/rbac/Rbac.d.ts +15 -0
  77. package/types/rbac/Rbac.d.ts.map +1 -1
  78. package/types/repository/mongo/UserApiKeyMongoRepository.d.ts.map +1 -0
  79. package/types/repository/sqlite/RoleSqliteRepository.d.ts.map +1 -1
  80. package/types/repository/sqlite/TenantSqliteRepository.d.ts.map +1 -1
  81. package/types/repository/sqlite/UserApiKeySqliteRepository.d.ts +19 -0
  82. package/types/repository/sqlite/UserApiKeySqliteRepository.d.ts.map +1 -0
  83. package/types/repository/sqlite/UserSqliteRepository.d.ts.map +1 -1
  84. package/types/routes/UserApiKeyRoutes.d.ts.map +1 -0
  85. package/types/routes/UserRoutes.d.ts.map +1 -1
  86. package/types/services/UserApiKeyService.d.ts.map +1 -0
  87. package/types/setup/LoadIdentityConfigFromEnv.d.ts.map +1 -1
  88. package/types/utils/AuthUtils.d.ts.map +1 -1
  89. package/types/zod/UserApiKeyZod.d.ts +16 -0
  90. package/types/zod/UserApiKeyZod.d.ts.map +1 -0
  91. package/src/utils/DbSetupUtils.ts +0 -41
  92. package/types/config/IdentityConfig.d.ts +0 -13
  93. package/types/config/IdentityConfig.d.ts.map +0 -1
  94. package/types/graphql/resolvers/role.resolvers.d.ts +0 -52
  95. package/types/graphql/resolvers/tenant.resolvers.d.ts +0 -49
  96. package/types/graphql/resolvers/user.resolvers.d.ts +0 -67
  97. package/types/utils/DbSetupUtils.d.ts.map +0 -1
@@ -0,0 +1,10 @@
1
+ import user from "../users/root-mongo-user"
2
+
3
+ const userApiKey = {
4
+ _id: "646a661e44c93567c23d8c22",
5
+ name: "root",
6
+ secret: "123",
7
+ user: user._id
8
+ };
9
+
10
+ export default userApiKey
@@ -1,6 +1,3 @@
1
- import {mongoose} from "@drax/common-back"
2
- import {IRole} from "../../../../identity-share/src/interfaces/IRole"
3
-
4
1
 
5
2
  const role = {
6
3
  _id: "646a661e44c93567c23d8d62",
@@ -13,3 +13,4 @@ class RoleMongoInitializer {
13
13
  }
14
14
 
15
15
  export default RoleMongoInitializer
16
+ export {RoleMongoInitializer}
@@ -16,3 +16,4 @@ async function RoleSqliteInitializer(): Promise<IRole> {
16
16
  }
17
17
 
18
18
  export default RoleSqliteInitializer
19
+ export {RoleSqliteInitializer}
@@ -0,0 +1,18 @@
1
+ import UserService from "../../src/services/UserService";
2
+ import {IUser} from "../../../identity-share/src/interfaces/IUser";
3
+ import UserMongoRepository from "../../src/repository/mongo/UserMongoRepository";
4
+
5
+ class UserMongoInitializer {
6
+
7
+ static async initRootUser(): Promise<IUser>{
8
+ const userService = new UserService(new UserMongoRepository())
9
+ let data = (await import("../data-obj/users/root-mongo-user")).default
10
+ let userCreated = await userService.create(data)
11
+ return userCreated
12
+ }
13
+ }
14
+
15
+ export default UserMongoInitializer
16
+ export {
17
+ UserMongoInitializer
18
+ }
@@ -0,0 +1,73 @@
1
+ import {before, after, describe, it, test} from "node:test"
2
+ import assert, {equal} from "assert";
3
+ import UserApiKeyMongoRepository from "../../../src/repository/mongo/UserApiKeyMongoRepository";
4
+ import MongoInMemory from "../../db/MongoInMemory";
5
+ import RoleMongoInitializer from "../../initializers/RoleMongoInitializer";
6
+ import UserMongoInitializer from "../../initializers/UserMongoInitializer";
7
+ import {IUserApiKey} from "../../../../identity-share/src/interfaces/IUserApiKey";
8
+ import type {IDraxPaginateResult} from "@drax/common-share";
9
+ import {mongoose, ValidationError} from "@drax/common-back";
10
+
11
+
12
+ test.describe("UserApiKeyRepositoryTest", function () {
13
+
14
+ let userApiKeyRepository = new UserApiKeyMongoRepository()
15
+ let data
16
+ let adminRole
17
+ let rootUser
18
+
19
+ before(async () => {
20
+ await MongoInMemory.connect()
21
+ adminRole = await RoleMongoInitializer.initAdminRole()
22
+ rootUser = await UserMongoInitializer.initRootUser()
23
+
24
+ //console.log("BEFORE USER", MongoInMemory.mongooseStatus, MongoInMemory.serverStatus)
25
+ return
26
+ })
27
+
28
+ after(async () => {
29
+ await MongoInMemory.DropAndClose()
30
+ //console.log("AFTER USER", MongoInMemory.status, MongoInMemory.serverStatus)
31
+ return
32
+ })
33
+
34
+ test("Create mongo user apikey successfully", async function () {
35
+ data = (await import("../../data-obj/apikey/root-mongo-user-apikey")).default
36
+ let userApiKeyCreated = await userApiKeyRepository.create(data)
37
+ equal(userApiKeyCreated.name, data.name)
38
+ })
39
+
40
+ test("Find mongo user by ID successfully", async function () {
41
+ data = (await import("../../data-obj/apikey/root-mongo-user-apikey")).default
42
+ let userApiKeyFound = await userApiKeyRepository.findById(data._id)
43
+
44
+ equal(userApiKeyFound.name, data.name)
45
+ })
46
+
47
+ test("Find mongo user by secret successfully", async function () {
48
+ data = (await import("../../data-obj/apikey/root-mongo-user-apikey")).default
49
+ console.log("Data:",data)
50
+ let userApiKeyFound = await userApiKeyRepository.findBySecret(data.secret)
51
+ console.log("userApiKeyFound",userApiKeyFound)
52
+ equal(userApiKeyFound.secret, data.secret)
53
+ })
54
+
55
+
56
+ test("Update mongo user apikey successfully.", async function () {
57
+ data = (await import("../../data-obj/apikey/root-mongo-user-apikey")).default
58
+ data.name = "AdminUpdated"
59
+ let userUpdated: IUserApiKey = await userApiKeyRepository.update(data._id, data)
60
+ equal(userUpdated.name, userUpdated.name)
61
+ })
62
+
63
+
64
+ test("Paginate mongo users successfully.", async function () {
65
+ let paginateUsersApiKey: IDraxPaginateResult<IUserApiKey> = await userApiKeyRepository.paginate({
66
+ page: 1,
67
+ limit: 5
68
+ })
69
+ equal(paginateUsersApiKey.items.length, 1)
70
+ equal(paginateUsersApiKey.total, 1)
71
+ equal(paginateUsersApiKey.page, 1)
72
+ })
73
+ })