@solidxai/core 0.1.8-beta.8 → 0.1.8

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 (145) hide show
  1. package/README.md +197 -0
  2. package/dist/controllers/authentication.controller.d.ts +32 -2
  3. package/dist/controllers/authentication.controller.d.ts.map +1 -1
  4. package/dist/controllers/authentication.controller.js +80 -3
  5. package/dist/controllers/authentication.controller.js.map +1 -1
  6. package/dist/dtos/create-api-key.dto.d.ts +5 -0
  7. package/dist/dtos/create-api-key.dto.d.ts.map +1 -0
  8. package/dist/dtos/create-api-key.dto.js +34 -0
  9. package/dist/dtos/create-api-key.dto.js.map +1 -0
  10. package/dist/dtos/register-private.dto.d.ts +3 -5
  11. package/dist/dtos/register-private.dto.d.ts.map +1 -1
  12. package/dist/dtos/register-private.dto.js +6 -18
  13. package/dist/dtos/register-private.dto.js.map +1 -1
  14. package/dist/dtos/sso-exchange.dto.d.ts +4 -0
  15. package/dist/dtos/sso-exchange.dto.d.ts.map +1 -0
  16. package/dist/dtos/sso-exchange.dto.js +26 -0
  17. package/dist/dtos/sso-exchange.dto.js.map +1 -0
  18. package/dist/dtos/update-api-key.dto.d.ts +4 -0
  19. package/dist/dtos/update-api-key.dto.d.ts.map +1 -0
  20. package/dist/dtos/update-api-key.dto.js +28 -0
  21. package/dist/dtos/update-api-key.dto.js.map +1 -0
  22. package/dist/entities/agent-event.entity.js +1 -1
  23. package/dist/entities/agent-event.entity.js.map +1 -1
  24. package/dist/entities/agent-session.entity.js +1 -1
  25. package/dist/entities/agent-session.entity.js.map +1 -1
  26. package/dist/entities/setting.entity.d.ts +1 -0
  27. package/dist/entities/setting.entity.d.ts.map +1 -1
  28. package/dist/entities/setting.entity.js +5 -1
  29. package/dist/entities/setting.entity.js.map +1 -1
  30. package/dist/entities/user-api-key.entity.d.ts +12 -0
  31. package/dist/entities/user-api-key.entity.d.ts.map +1 -0
  32. package/dist/entities/user-api-key.entity.js +62 -0
  33. package/dist/entities/user-api-key.entity.js.map +1 -0
  34. package/dist/entities/user.entity.d.ts +3 -0
  35. package/dist/entities/user.entity.d.ts.map +1 -1
  36. package/dist/entities/user.entity.js +12 -1
  37. package/dist/entities/user.entity.js.map +1 -1
  38. package/dist/enums/auth-type.enum.d.ts +2 -1
  39. package/dist/enums/auth-type.enum.d.ts.map +1 -1
  40. package/dist/enums/auth-type.enum.js +2 -1
  41. package/dist/enums/auth-type.enum.js.map +1 -1
  42. package/dist/guards/api-key.guard.d.ts +11 -0
  43. package/dist/guards/api-key.guard.d.ts.map +1 -0
  44. package/dist/guards/api-key.guard.js +43 -0
  45. package/dist/guards/api-key.guard.js.map +1 -0
  46. package/dist/guards/authentication.guard.d.ts +4 -2
  47. package/dist/guards/authentication.guard.d.ts.map +1 -1
  48. package/dist/guards/authentication.guard.js +7 -3
  49. package/dist/guards/authentication.guard.js.map +1 -1
  50. package/dist/helpers/bootstrap.helper.d.ts.map +1 -1
  51. package/dist/helpers/bootstrap.helper.js +11 -0
  52. package/dist/helpers/bootstrap.helper.js.map +1 -1
  53. package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.d.ts.map +1 -1
  54. package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.js +15 -6
  55. package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.js.map +1 -1
  56. package/dist/index.d.ts +2 -0
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +2 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/interfaces.d.ts +12 -0
  61. package/dist/interfaces.d.ts.map +1 -1
  62. package/dist/interfaces.js.map +1 -1
  63. package/dist/jobs/database/chatter-queue-publisher-database.service.d.ts +1 -1
  64. package/dist/jobs/database/chatter-queue-publisher-database.service.d.ts.map +1 -1
  65. package/dist/jobs/database/chatter-queue-publisher-database.service.js.map +1 -1
  66. package/dist/jobs/database/chatter-queue-subscriber-database.service.d.ts +1 -1
  67. package/dist/jobs/database/chatter-queue-subscriber-database.service.d.ts.map +1 -1
  68. package/dist/jobs/database/chatter-queue-subscriber-database.service.js.map +1 -1
  69. package/dist/jobs/rabbitmq/chatter-queue-publisher.service.d.ts +1 -12
  70. package/dist/jobs/rabbitmq/chatter-queue-publisher.service.d.ts.map +1 -1
  71. package/dist/jobs/rabbitmq/chatter-queue-publisher.service.js.map +1 -1
  72. package/dist/jobs/rabbitmq/chatter-queue-subscriber.service.d.ts +1 -1
  73. package/dist/jobs/rabbitmq/chatter-queue-subscriber.service.d.ts.map +1 -1
  74. package/dist/jobs/rabbitmq/chatter-queue-subscriber.service.js.map +1 -1
  75. package/dist/jobs/redis/chatter-queue-subscriber-redis.service.d.ts +1 -1
  76. package/dist/jobs/redis/chatter-queue-subscriber-redis.service.d.ts.map +1 -1
  77. package/dist/jobs/redis/chatter-queue-subscriber-redis.service.js.map +1 -1
  78. package/dist/repository/user-api-key.repository.d.ts +12 -0
  79. package/dist/repository/user-api-key.repository.d.ts.map +1 -0
  80. package/dist/repository/user-api-key.repository.js +34 -0
  81. package/dist/repository/user-api-key.repository.js.map +1 -0
  82. package/dist/seeders/seed-data/solid-core-metadata.json +145 -20
  83. package/dist/services/api-key.service.d.ts +20 -0
  84. package/dist/services/api-key.service.d.ts.map +1 -0
  85. package/dist/services/api-key.service.js +98 -0
  86. package/dist/services/api-key.service.js.map +1 -0
  87. package/dist/services/authentication.service.d.ts +19 -1
  88. package/dist/services/authentication.service.d.ts.map +1 -1
  89. package/dist/services/authentication.service.js +31 -5
  90. package/dist/services/authentication.service.js.map +1 -1
  91. package/dist/services/encryption.service.d.ts +8 -0
  92. package/dist/services/encryption.service.d.ts.map +1 -0
  93. package/dist/services/encryption.service.js +75 -0
  94. package/dist/services/encryption.service.js.map +1 -0
  95. package/dist/services/setting.service.d.ts +1 -0
  96. package/dist/services/setting.service.d.ts.map +1 -1
  97. package/dist/services/setting.service.js +35 -7
  98. package/dist/services/setting.service.js.map +1 -1
  99. package/dist/services/settings/default-settings-provider.service.d.ts +12 -0
  100. package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
  101. package/dist/services/settings/default-settings-provider.service.js +4 -3
  102. package/dist/services/settings/default-settings-provider.service.js.map +1 -1
  103. package/dist/services/sso-code-storage.service.d.ts +15 -0
  104. package/dist/services/sso-code-storage.service.d.ts.map +1 -0
  105. package/dist/services/sso-code-storage.service.js +47 -0
  106. package/dist/services/sso-code-storage.service.js.map +1 -0
  107. package/dist/solid-core.module.d.ts.map +1 -1
  108. package/dist/solid-core.module.js +10 -0
  109. package/dist/solid-core.module.js.map +1 -1
  110. package/dist/subscribers/audit.subscriber.d.ts +1 -1
  111. package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
  112. package/dist/subscribers/audit.subscriber.js.map +1 -1
  113. package/package.json +1 -1
  114. package/src/controllers/authentication.controller.ts +59 -3
  115. package/src/dtos/create-api-key.dto.ts +14 -0
  116. package/src/dtos/register-private.dto.ts +5 -14
  117. package/src/dtos/sso-exchange.dto.ts +7 -0
  118. package/src/dtos/update-api-key.dto.ts +9 -0
  119. package/src/entities/agent-event.entity.ts +1 -1
  120. package/src/entities/agent-session.entity.ts +1 -1
  121. package/src/entities/setting.entity.ts +3 -0
  122. package/src/entities/user-api-key.entity.ts +37 -0
  123. package/src/entities/user.entity.ts +8 -0
  124. package/src/enums/auth-type.enum.ts +1 -0
  125. package/src/guards/api-key.guard.ts +32 -0
  126. package/src/guards/authentication.guard.ts +6 -3
  127. package/src/helpers/bootstrap.helper.ts +15 -0
  128. package/src/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.ts +17 -6
  129. package/src/index.ts +2 -0
  130. package/src/interfaces.ts +16 -0
  131. package/src/jobs/database/chatter-queue-publisher-database.service.ts +1 -1
  132. package/src/jobs/database/chatter-queue-subscriber-database.service.ts +1 -1
  133. package/src/jobs/rabbitmq/chatter-queue-publisher.service.ts +1 -15
  134. package/src/jobs/rabbitmq/chatter-queue-subscriber.service.ts +1 -1
  135. package/src/jobs/redis/chatter-queue-subscriber-redis.service.ts +1 -1
  136. package/src/repository/user-api-key.repository.ts +17 -0
  137. package/src/seeders/seed-data/solid-core-metadata.json +145 -20
  138. package/src/services/api-key.service.ts +111 -0
  139. package/src/services/authentication.service.ts +35 -3
  140. package/src/services/encryption.service.ts +43 -0
  141. package/src/services/setting.service.ts +38 -9
  142. package/src/services/settings/default-settings-provider.service.ts +4 -3
  143. package/src/services/sso-code-storage.service.ts +36 -0
  144. package/src/solid-core.module.ts +10 -0
  145. package/src/subscribers/audit.subscriber.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"chatter-queue-subscriber.service.js","sourceRoot":"","sources":["../../../src/jobs/rabbitmq/chatter-queue-subscriber.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,mGAAqF;AAErF,0EAAqE;AACrE,sFAAgF;AAEhF,oFAA0D;AAE1D,oFAA6E;AAGtE,IAAM,8BAA8B,sCAApC,MAAM,8BAA+B,SAAQ,gDAAqC;IAGrF,YACa,gBAAkC,EAClC,qBAA4C,EACpC,qBAA4C;QAE7D,KAAK,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;QAJtC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,0BAAqB,GAArB,qBAAqB,CAAuB;QACpC,0BAAqB,GAArB,qBAAqB,CAAuB;QALhD,kBAAa,GAAG,IAAI,eAAM,CAAC,gCAA8B,CAAC,IAAI,CAAC,CAAC;IAQjF,CAAC;IAED,OAAO;QACH,OAAO;YACH,GAAG,+BAAmB;SACzB,CAAA;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAwC;QACpD,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEpF,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;gBAChF,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CACrD,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAC/D,CAAC;gBACF,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gBACjF,MAAM;QACd,CAAC;IACL,CAAC;CACJ,CAAA;AAtCY,wEAA8B;yCAA9B,8BAA8B;IAD1C,IAAA,mBAAU,GAAE;qCAKsB,qCAAgB;QACX,gDAAqB;QACb,+CAAqB;GANxD,8BAA8B,CAsC1C","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\n\nimport { RabbitMqSubscriber } from 'src/services/queues/rabbitmq-subscriber.service';\nimport { QueueMessage } from 'src/interfaces/mq';\nimport { MqMessageService } from '../../services/mq-message.service';\nimport { MqMessageQueueService } from '../../services/mq-message-queue.service';\nimport { QueuesModuleOptions } from \"../../interfaces\";\nimport chatterQueueOptions from './chatter-queue-options';\nimport { AuditQueuePayload } from './chatter-queue-publisher.service';\nimport { ChatterMessageService } from 'src/services/chatter-message.service';\n\n@Injectable()\nexport class ChatterQueueSubscriberRabbitmq extends RabbitMqSubscriber<AuditQueuePayload> {\n private readonly chatterLogger = new Logger(ChatterQueueSubscriberRabbitmq.name);\n\n constructor(\n readonly mqMessageService: MqMessageService,\n readonly mqMessageQueueService: MqMessageQueueService,\n private readonly chatterMessageService: ChatterMessageService,\n ) {\n super(mqMessageService, mqMessageQueueService);\n }\n\n options(): QueuesModuleOptions {\n return {\n ...chatterQueueOptions\n }\n }\n\n async subscribe(message: QueueMessage<AuditQueuePayload>) {\n const p = message.payload;\n this.chatterLogger.debug(`Audit event ${p.eventType} ${p.modelName}#${p.entityId}`);\n\n switch (p.eventType) {\n case 'insert':\n await this.chatterMessageService.postAuditMessageOnInsert(p.after, p.modelName);\n break;\n case 'update':\n await this.chatterMessageService.postAuditMessageOnUpdate(\n p.after,\n p.modelName,\n p.before,\n (p.updatedColumnNames ?? []).map(n => ({ propertyName: n })),\n );\n break;\n case 'delete':\n await this.chatterMessageService.postAuditMessageOnDelete(p.modelName, p.before);\n break;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"chatter-queue-subscriber.service.js","sourceRoot":"","sources":["../../../src/jobs/rabbitmq/chatter-queue-subscriber.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,mGAAqF;AAErF,0EAAqE;AACrE,sFAAgF;AAEhF,oFAA0D;AAE1D,oFAA6E;AAGtE,IAAM,8BAA8B,sCAApC,MAAM,8BAA+B,SAAQ,gDAAqC;IAGrF,YACa,gBAAkC,EAClC,qBAA4C,EACpC,qBAA4C;QAE7D,KAAK,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;QAJtC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,0BAAqB,GAArB,qBAAqB,CAAuB;QACpC,0BAAqB,GAArB,qBAAqB,CAAuB;QALhD,kBAAa,GAAG,IAAI,eAAM,CAAC,gCAA8B,CAAC,IAAI,CAAC,CAAC;IAQjF,CAAC;IAED,OAAO;QACH,OAAO;YACH,GAAG,+BAAmB;SACzB,CAAA;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAwC;QACpD,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEpF,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;gBAChF,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CACrD,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAC/D,CAAC;gBACF,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gBACjF,MAAM;QACd,CAAC;IACL,CAAC;CACJ,CAAA;AAtCY,wEAA8B;yCAA9B,8BAA8B;IAD1C,IAAA,mBAAU,GAAE;qCAKsB,qCAAgB;QACX,gDAAqB;QACb,+CAAqB;GANxD,8BAA8B,CAsC1C","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\n\nimport { RabbitMqSubscriber } from 'src/services/queues/rabbitmq-subscriber.service';\nimport { QueueMessage } from 'src/interfaces/mq';\nimport { MqMessageService } from '../../services/mq-message.service';\nimport { MqMessageQueueService } from '../../services/mq-message-queue.service';\nimport { QueuesModuleOptions } from \"../../interfaces\";\nimport chatterQueueOptions from './chatter-queue-options';\nimport { AuditQueuePayload } from '../../interfaces';\nimport { ChatterMessageService } from 'src/services/chatter-message.service';\n\n@Injectable()\nexport class ChatterQueueSubscriberRabbitmq extends RabbitMqSubscriber<AuditQueuePayload> {\n private readonly chatterLogger = new Logger(ChatterQueueSubscriberRabbitmq.name);\n\n constructor(\n readonly mqMessageService: MqMessageService,\n readonly mqMessageQueueService: MqMessageQueueService,\n private readonly chatterMessageService: ChatterMessageService,\n ) {\n super(mqMessageService, mqMessageQueueService);\n }\n\n options(): QueuesModuleOptions {\n return {\n ...chatterQueueOptions\n }\n }\n\n async subscribe(message: QueueMessage<AuditQueuePayload>) {\n const p = message.payload;\n this.chatterLogger.debug(`Audit event ${p.eventType} ${p.modelName}#${p.entityId}`);\n\n switch (p.eventType) {\n case 'insert':\n await this.chatterMessageService.postAuditMessageOnInsert(p.after, p.modelName);\n break;\n case 'update':\n await this.chatterMessageService.postAuditMessageOnUpdate(\n p.after,\n p.modelName,\n p.before,\n (p.updatedColumnNames ?? []).map(n => ({ propertyName: n })),\n );\n break;\n case 'delete':\n await this.chatterMessageService.postAuditMessageOnDelete(p.modelName, p.before);\n break;\n }\n }\n}\n"]}
@@ -3,7 +3,7 @@ import { QueueMessage } from 'src/interfaces/mq';
3
3
  import { MqMessageService } from '../../services/mq-message.service';
4
4
  import { MqMessageQueueService } from '../../services/mq-message-queue.service';
5
5
  import { QueuesModuleOptions } from "../../interfaces";
6
- import { AuditQueuePayload } from '../rabbitmq/chatter-queue-publisher.service';
6
+ import { AuditQueuePayload } from '../../interfaces';
7
7
  import { ChatterMessageService } from '../../services/chatter-message.service';
8
8
  export declare class ChatterQueueSubscriberRedis extends RedisSubscriber<any> {
9
9
  readonly mqMessageService: MqMessageService;
@@ -1 +1 @@
1
- {"version":3,"file":"chatter-queue-subscriber-redis.service.d.ts","sourceRoot":"","sources":["../../../src/jobs/redis/chatter-queue-subscriber-redis.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,qBACa,2BAA4B,SAAQ,eAAe,CAAC,GAAG,CAAC;IAI7D,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IAL1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgD;gBAGtE,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EACpC,qBAAqB,EAAE,qBAAqB;IAKjE,OAAO,IAAI,mBAAmB;IAMxB,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,iBAAiB,CAAC;CAgB3D"}
1
+ {"version":3,"file":"chatter-queue-subscriber-redis.service.d.ts","sourceRoot":"","sources":["../../../src/jobs/redis/chatter-queue-subscriber-redis.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,qBACa,2BAA4B,SAAQ,eAAe,CAAC,GAAG,CAAC;IAI7D,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IAL1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgD;gBAGtE,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EACpC,qBAAqB,EAAE,qBAAqB;IAKjE,OAAO,IAAI,mBAAmB;IAMxB,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,iBAAiB,CAAC;CAgB3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"chatter-queue-subscriber-redis.service.js","sourceRoot":"","sources":["../../../src/jobs/redis/chatter-queue-subscriber-redis.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,6FAA+E;AAE/E,gGAA+D;AAC/D,0EAAqE;AACrE,sFAAgF;AAGhF,oFAA+E;AAGxE,IAAM,2BAA2B,mCAAjC,MAAM,2BAA4B,SAAQ,0CAAoB;IAGjE,YACa,gBAAkC,EAClC,qBAA4C,EACpC,qBAA4C;QAE7D,KAAK,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;QAJtC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,0BAAqB,GAArB,qBAAqB,CAAuB;QACpC,0BAAqB,GAArB,qBAAqB,CAAuB;QALhD,uBAAkB,GAAG,IAAI,eAAM,CAAC,6BAA2B,CAAC,IAAI,CAAC,CAAC;IAQnF,CAAC;IAED,OAAO;QACH,OAAO;YACH,GAAG,qCAAkB;SACxB,CAAA;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAwC;QACpD,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzF,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAS,CAAC,CAAC;gBACjG,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACzK,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5G,MAAM;QACd,CAAC;IACL,CAAC;CACJ,CAAA;AAjCY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;qCAKsB,qCAAgB;QACX,gDAAqB;QACb,+CAAqB;GANxD,2BAA2B,CAiCvC","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\n\nimport { RedisSubscriber } from 'src/services/queues/redis-subscriber.service';\nimport { QueueMessage } from 'src/interfaces/mq';\nimport chatterQueueConfig from './chatter-queue-options-redis';\nimport { MqMessageService } from '../../services/mq-message.service';\nimport { MqMessageQueueService } from '../../services/mq-message-queue.service';\nimport { QueuesModuleOptions } from \"../../interfaces\";\nimport { AuditQueuePayload } from '../rabbitmq/chatter-queue-publisher.service';\nimport { ChatterMessageService } from '../../services/chatter-message.service';\n\n@Injectable()\nexport class ChatterQueueSubscriberRedis extends RedisSubscriber<any> {\n private readonly chatterQueueLogger = new Logger(ChatterQueueSubscriberRedis.name);\n\n constructor(\n readonly mqMessageService: MqMessageService,\n readonly mqMessageQueueService: MqMessageQueueService,\n private readonly chatterMessageService: ChatterMessageService,\n ) {\n super(mqMessageService, mqMessageQueueService);\n }\n\n options(): QueuesModuleOptions {\n return {\n ...chatterQueueConfig\n }\n }\n\n async subscribe(message: QueueMessage<AuditQueuePayload>) {\n const p = message.payload;\n this.chatterQueueLogger.debug(`Audit event ${p.eventType} ${p.modelName}#${p.entityId}`);\n\n switch (p.eventType) {\n case 'insert':\n await this.chatterMessageService.postAuditMessageOnInsert(p.after, { name: p.modelName } as any);\n break;\n case 'update':\n await this.chatterMessageService.postAuditMessageOnUpdate(p.after, { name: p.modelName } as any, p.before, (p.updatedColumnNames || []).map(n => ({ propertyName: n })));\n break;\n case 'delete':\n await this.chatterMessageService.postAuditMessageOnDelete(p.before, { name: p.modelName } as any, p.before);\n break;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"chatter-queue-subscriber-redis.service.js","sourceRoot":"","sources":["../../../src/jobs/redis/chatter-queue-subscriber-redis.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,6FAA+E;AAE/E,gGAA+D;AAC/D,0EAAqE;AACrE,sFAAgF;AAGhF,oFAA+E;AAGxE,IAAM,2BAA2B,mCAAjC,MAAM,2BAA4B,SAAQ,0CAAoB;IAGjE,YACa,gBAAkC,EAClC,qBAA4C,EACpC,qBAA4C;QAE7D,KAAK,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;QAJtC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,0BAAqB,GAArB,qBAAqB,CAAuB;QACpC,0BAAqB,GAArB,qBAAqB,CAAuB;QALhD,uBAAkB,GAAG,IAAI,eAAM,CAAC,6BAA2B,CAAC,IAAI,CAAC,CAAC;IAQnF,CAAC;IAED,OAAO;QACH,OAAO;YACH,GAAG,qCAAkB;SACxB,CAAA;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAwC;QACpD,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzF,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAS,CAAC,CAAC;gBACjG,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACzK,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5G,MAAM;QACd,CAAC;IACL,CAAC;CACJ,CAAA;AAjCY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;qCAKsB,qCAAgB;QACX,gDAAqB;QACb,+CAAqB;GANxD,2BAA2B,CAiCvC","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\n\nimport { RedisSubscriber } from 'src/services/queues/redis-subscriber.service';\nimport { QueueMessage } from 'src/interfaces/mq';\nimport chatterQueueConfig from './chatter-queue-options-redis';\nimport { MqMessageService } from '../../services/mq-message.service';\nimport { MqMessageQueueService } from '../../services/mq-message-queue.service';\nimport { QueuesModuleOptions } from \"../../interfaces\";\nimport { AuditQueuePayload } from '../../interfaces';\nimport { ChatterMessageService } from '../../services/chatter-message.service';\n\n@Injectable()\nexport class ChatterQueueSubscriberRedis extends RedisSubscriber<any> {\n private readonly chatterQueueLogger = new Logger(ChatterQueueSubscriberRedis.name);\n\n constructor(\n readonly mqMessageService: MqMessageService,\n readonly mqMessageQueueService: MqMessageQueueService,\n private readonly chatterMessageService: ChatterMessageService,\n ) {\n super(mqMessageService, mqMessageQueueService);\n }\n\n options(): QueuesModuleOptions {\n return {\n ...chatterQueueConfig\n }\n }\n\n async subscribe(message: QueueMessage<AuditQueuePayload>) {\n const p = message.payload;\n this.chatterQueueLogger.debug(`Audit event ${p.eventType} ${p.modelName}#${p.entityId}`);\n\n switch (p.eventType) {\n case 'insert':\n await this.chatterMessageService.postAuditMessageOnInsert(p.after, { name: p.modelName } as any);\n break;\n case 'update':\n await this.chatterMessageService.postAuditMessageOnUpdate(p.after, { name: p.modelName } as any, p.before, (p.updatedColumnNames || []).map(n => ({ propertyName: n })));\n break;\n case 'delete':\n await this.chatterMessageService.postAuditMessageOnDelete(p.before, { name: p.modelName } as any, p.before);\n break;\n }\n }\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import { UserApiKey } from 'src/entities/user-api-key.entity';
2
+ import { RequestContextService } from 'src/services/request-context.service';
3
+ import { DataSource } from 'typeorm';
4
+ import { SecurityRuleRepository } from './security-rule.repository';
5
+ import { SolidBaseRepository } from './solid-base.repository';
6
+ export declare class UserApiKeyRepository extends SolidBaseRepository<UserApiKey> {
7
+ readonly dataSource: DataSource;
8
+ readonly requestContextService: RequestContextService;
9
+ readonly securityRuleRepository: SecurityRuleRepository;
10
+ constructor(dataSource: DataSource, requestContextService: RequestContextService, securityRuleRepository: SecurityRuleRepository);
11
+ }
12
+ //# sourceMappingURL=user-api-key.repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-api-key.repository.d.ts","sourceRoot":"","sources":["../../src/repository/user-api-key.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBACa,oBAAqB,SAAQ,mBAAmB,CAAC,UAAU,CAAC;IAEjE,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB;gBAF9C,UAAU,EAAE,UAAU,EACtB,qBAAqB,EAAE,qBAAqB,EAC5C,sBAAsB,EAAE,sBAAsB;CAI9D"}
@@ -0,0 +1,34 @@
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.UserApiKeyRepository = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const user_api_key_entity_1 = require("../entities/user-api-key.entity");
15
+ const request_context_service_1 = require("../services/request-context.service");
16
+ const typeorm_1 = require("typeorm");
17
+ const security_rule_repository_1 = require("./security-rule.repository");
18
+ const solid_base_repository_1 = require("./solid-base.repository");
19
+ let UserApiKeyRepository = class UserApiKeyRepository extends solid_base_repository_1.SolidBaseRepository {
20
+ constructor(dataSource, requestContextService, securityRuleRepository) {
21
+ super(user_api_key_entity_1.UserApiKey, dataSource, requestContextService, securityRuleRepository);
22
+ this.dataSource = dataSource;
23
+ this.requestContextService = requestContextService;
24
+ this.securityRuleRepository = securityRuleRepository;
25
+ }
26
+ };
27
+ exports.UserApiKeyRepository = UserApiKeyRepository;
28
+ exports.UserApiKeyRepository = UserApiKeyRepository = __decorate([
29
+ (0, common_1.Injectable)(),
30
+ __metadata("design:paramtypes", [typeorm_1.DataSource,
31
+ request_context_service_1.RequestContextService,
32
+ security_rule_repository_1.SecurityRuleRepository])
33
+ ], UserApiKeyRepository);
34
+ //# sourceMappingURL=user-api-key.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-api-key.repository.js","sourceRoot":"","sources":["../../src/repository/user-api-key.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yEAA8D;AAC9D,iFAA6E;AAC7E,qCAAqC;AACrC,yEAAoE;AACpE,mEAA8D;AAGvD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,2CAA+B;IACrE,YACa,UAAsB,EACtB,qBAA4C,EAC5C,sBAA8C;QAEvD,KAAK,CAAC,gCAAU,EAAE,UAAU,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;QAJpE,eAAU,GAAV,UAAU,CAAY;QACtB,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,2BAAsB,GAAtB,sBAAsB,CAAwB;IAG3D,CAAC;CACJ,CAAA;AARY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAGgB,oBAAU;QACC,+CAAqB;QACpB,iDAAsB;GAJlD,oBAAoB,CAQhC","sourcesContent":["import { Injectable } from '@nestjs/common';\nimport { UserApiKey } from 'src/entities/user-api-key.entity';\nimport { RequestContextService } from 'src/services/request-context.service';\nimport { DataSource } from 'typeorm';\nimport { SecurityRuleRepository } from './security-rule.repository';\nimport { SolidBaseRepository } from './solid-base.repository';\n\n@Injectable()\nexport class UserApiKeyRepository extends SolidBaseRepository<UserApiKey> {\n constructor(\n readonly dataSource: DataSource,\n readonly requestContextService: RequestContextService,\n readonly securityRuleRepository: SecurityRuleRepository,\n ) {\n super(UserApiKey, dataSource, requestContextService, securityRuleRepository);\n }\n}\n"]}
@@ -2085,6 +2085,35 @@
2085
2085
  "relationModelModuleName": "solid-core",
2086
2086
  "isSystem": true
2087
2087
  },
2088
+ {
2089
+ "name": "isAllowedToGenerateApiKeys",
2090
+ "displayName": "Is Allowed To Generate API Keys",
2091
+ "type": "boolean",
2092
+ "required": true,
2093
+ "unique": false,
2094
+ "index": false,
2095
+ "private": false,
2096
+ "encrypt": false,
2097
+ "defaultValue": "false",
2098
+ "isSystem": true,
2099
+ "enableAuditTracking": true
2100
+ },
2101
+ {
2102
+ "name": "apiKeys",
2103
+ "displayName": "API Keys",
2104
+ "type": "relation",
2105
+ "required": false,
2106
+ "unique": false,
2107
+ "index": false,
2108
+ "private": false,
2109
+ "encrypt": false,
2110
+ "relationType": "one-to-many",
2111
+ "relationCoModelSingularName": "userApiKey",
2112
+ "relationCoModelFieldName": "user",
2113
+ "relationCreateInverse": true,
2114
+ "relationModelModuleName": "solid-core",
2115
+ "isSystem": true
2116
+ },
2088
2117
  {
2089
2118
  "name": "passwordScheme",
2090
2119
  "displayName": "Password Scheme",
@@ -2129,6 +2158,105 @@
2129
2158
  }
2130
2159
  ]
2131
2160
  },
2161
+ {
2162
+ "singularName": "userApiKey",
2163
+ "tableName": "ss_user_api_key",
2164
+ "pluralName": "userApiKeys",
2165
+ "displayName": "User API Key",
2166
+ "description": "API keys for programmatic server-to-server access",
2167
+ "dataSource": "default",
2168
+ "dataSourceType": "postgres",
2169
+ "userKeyFieldUserKey": "name",
2170
+ "isSystem": true,
2171
+ "fields": [
2172
+ {
2173
+ "name": "name",
2174
+ "displayName": "Name",
2175
+ "type": "shortText",
2176
+ "length": 512,
2177
+ "required": true,
2178
+ "unique": false,
2179
+ "index": false,
2180
+ "private": false,
2181
+ "encrypt": false,
2182
+ "isSystem": true
2183
+ },
2184
+ {
2185
+ "name": "hashedKey",
2186
+ "displayName": "Hashed Key",
2187
+ "type": "shortText",
2188
+ "length": 512,
2189
+ "required": true,
2190
+ "unique": true,
2191
+ "index": true,
2192
+ "private": true,
2193
+ "encrypt": false,
2194
+ "isSystem": true
2195
+ },
2196
+ {
2197
+ "name": "maskedKey",
2198
+ "displayName": "Masked Key",
2199
+ "type": "shortText",
2200
+ "length": 512,
2201
+ "required": true,
2202
+ "unique": false,
2203
+ "index": false,
2204
+ "private": false,
2205
+ "encrypt": false,
2206
+ "isSystem": true
2207
+ },
2208
+ {
2209
+ "name": "isActive",
2210
+ "displayName": "Is Active",
2211
+ "type": "boolean",
2212
+ "required": true,
2213
+ "unique": false,
2214
+ "index": false,
2215
+ "private": false,
2216
+ "encrypt": false,
2217
+ "defaultValue": "true",
2218
+ "isSystem": true
2219
+ },
2220
+ {
2221
+ "name": "expiresAt",
2222
+ "displayName": "Expires At",
2223
+ "type": "datetime",
2224
+ "required": false,
2225
+ "unique": false,
2226
+ "index": false,
2227
+ "private": false,
2228
+ "encrypt": false,
2229
+ "isSystem": true
2230
+ },
2231
+ {
2232
+ "name": "lastUsedAt",
2233
+ "displayName": "Last Used At",
2234
+ "type": "datetime",
2235
+ "required": false,
2236
+ "unique": false,
2237
+ "index": false,
2238
+ "private": false,
2239
+ "encrypt": false,
2240
+ "isSystem": true
2241
+ },
2242
+ {
2243
+ "name": "user",
2244
+ "displayName": "User",
2245
+ "type": "relation",
2246
+ "required": true,
2247
+ "unique": false,
2248
+ "index": false,
2249
+ "private": false,
2250
+ "encrypt": false,
2251
+ "relationType": "many-to-one",
2252
+ "relationCoModelSingularName": "user",
2253
+ "relationCoModelFieldName": "apiKeys",
2254
+ "relationCreateInverse": true,
2255
+ "relationModelModuleName": "solid-core",
2256
+ "isSystem": true
2257
+ }
2258
+ ]
2259
+ },
2132
2260
  {
2133
2261
  "singularName": "userActivityHistory",
2134
2262
  "tableName": "ss_user_activity_history",
@@ -5490,7 +5618,7 @@
5490
5618
  "private": false,
5491
5619
  "encrypt": false,
5492
5620
  "isSystem": true,
5493
- "selectionStaticValues": ["active", "completed", "failed", "cancelled"],
5621
+ "selectionStaticValues": ["active:Active", "completed:Completed", "failed:Failed", "cancelled:Cancelled"],
5494
5622
  "selectionValueType": "string"
5495
5623
  },
5496
5624
  {
@@ -5627,15 +5755,15 @@
5627
5755
  "encrypt": false,
5628
5756
  "isSystem": true,
5629
5757
  "selectionStaticValues": [
5630
- "user_message",
5631
- "assistant_message",
5632
- "tool_use",
5633
- "tool_result",
5634
- "system_prompt",
5635
- "thinking",
5636
- "error",
5637
- "session_start",
5638
- "session_end"
5758
+ "user_message:User Message",
5759
+ "assistant_message:Assistant Message",
5760
+ "tool_use:Tool Use",
5761
+ "tool_result:Tool Result",
5762
+ "system_prompt:System Prompt",
5763
+ "thinking:Thinking",
5764
+ "error:Error",
5765
+ "session_start:Session Start",
5766
+ "session_end:Session End"
5639
5767
  ],
5640
5768
  "selectionValueType": "string"
5641
5769
  },
@@ -13601,9 +13729,9 @@
13601
13729
  "pagination": true,
13602
13730
  "pageSizeOptions": [10, 25, 50],
13603
13731
  "enableGlobalSearch": true,
13604
- "create": false,
13732
+ "create": true,
13605
13733
  "edit": true,
13606
- "delete": false
13734
+ "delete": true
13607
13735
  },
13608
13736
  "children": [
13609
13737
  { "type": "field", "attrs": { "name": "sessionId", "isSearchable": true } },
@@ -13659,9 +13787,7 @@
13659
13787
  { "type": "field", "attrs": { "name": "totalSteps" } },
13660
13788
  { "type": "field", "attrs": { "name": "totalCost" } },
13661
13789
  { "type": "field", "attrs": { "name": "totalInputTokens" } },
13662
- { "type": "field", "attrs": { "name": "totalOutputTokens" } },
13663
- { "type": "field", "attrs": { "name": "createdAt" } },
13664
- { "type": "field", "attrs": { "name": "updatedAt" } }
13790
+ { "type": "field", "attrs": { "name": "totalOutputTokens" } }
13665
13791
  ]
13666
13792
  }
13667
13793
  ]
@@ -13697,9 +13823,9 @@
13697
13823
  "pagination": true,
13698
13824
  "pageSizeOptions": [10, 25, 50],
13699
13825
  "enableGlobalSearch": true,
13700
- "create": false,
13701
- "edit": false,
13702
- "delete": false
13826
+ "create": true,
13827
+ "edit": true,
13828
+ "delete": true
13703
13829
  },
13704
13830
  "children": [
13705
13831
  { "type": "field", "attrs": { "name": "id" } },
@@ -13760,8 +13886,7 @@
13760
13886
  { "type": "field", "attrs": { "name": "cost" } },
13761
13887
  { "type": "field", "attrs": { "name": "inputTokens" } },
13762
13888
  { "type": "field", "attrs": { "name": "outputTokens" } },
13763
- { "type": "field", "attrs": { "name": "toolReturncode" } },
13764
- { "type": "field", "attrs": { "name": "createdAt" } }
13889
+ { "type": "field", "attrs": { "name": "toolReturncode" } }
13765
13890
  ]
13766
13891
  }
13767
13892
  ]
@@ -0,0 +1,20 @@
1
+ import { CreateApiKeyDto } from 'src/dtos/create-api-key.dto';
2
+ import { UpdateApiKeyDto } from 'src/dtos/update-api-key.dto';
3
+ import { UserApiKey } from 'src/entities/user-api-key.entity';
4
+ import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
5
+ import { UserApiKeyRepository } from 'src/repository/user-api-key.repository';
6
+ import { PermissionMetadataService } from 'src/services/permission-metadata.service';
7
+ export declare class ApiKeyService {
8
+ private readonly apiKeyRepository;
9
+ private readonly permissionMetadataService;
10
+ private readonly logger;
11
+ constructor(apiKeyRepository: UserApiKeyRepository, permissionMetadataService: PermissionMetadataService);
12
+ generate(userId: number, dto: CreateApiKeyDto): Promise<{
13
+ apiKey: string;
14
+ record: UserApiKey;
15
+ }>;
16
+ validate(rawKey: string): Promise<ActiveUserData>;
17
+ updateKey(id: number, userId: number, dto: UpdateApiKeyDto): Promise<void>;
18
+ private hash;
19
+ }
20
+ //# sourceMappingURL=api-key.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key.service.d.ts","sourceRoot":"","sources":["../../src/services/api-key.service.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAErF,qBACa,aAAa;IAIlB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAJ9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;gBAGpC,gBAAgB,EAAE,oBAAoB,EACtC,yBAAyB,EAAE,yBAAyB;IAGnE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC;IA+B/F,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAkCjD,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhF,OAAO,CAAC,IAAI;CAGf"}
@@ -0,0 +1,98 @@
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
+ var ApiKeyService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ApiKeyService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const crypto_1 = require("crypto");
16
+ const user_api_key_entity_1 = require("../entities/user-api-key.entity");
17
+ const user_entity_1 = require("../entities/user.entity");
18
+ const user_api_key_repository_1 = require("../repository/user-api-key.repository");
19
+ const permission_metadata_service_1 = require("./permission-metadata.service");
20
+ let ApiKeyService = ApiKeyService_1 = class ApiKeyService {
21
+ constructor(apiKeyRepository, permissionMetadataService) {
22
+ this.apiKeyRepository = apiKeyRepository;
23
+ this.permissionMetadataService = permissionMetadataService;
24
+ this.logger = new common_1.Logger(ApiKeyService_1.name);
25
+ }
26
+ async generate(userId, dto) {
27
+ const user = await this.apiKeyRepository.manager.findOne(user_entity_1.User, {
28
+ where: { id: userId },
29
+ select: ['id', 'isAllowedToGenerateApiKeys'],
30
+ });
31
+ if (!user?.isAllowedToGenerateApiKeys) {
32
+ throw new common_1.ForbiddenException('You are not allowed to generate API keys');
33
+ }
34
+ const rawKey = 'sldx_' + (0, crypto_1.randomBytes)(32).toString('hex');
35
+ const hashedKey = this.hash(rawKey);
36
+ const maskedKey = 'sldx_****' + rawKey.slice(-4);
37
+ const record = this.apiKeyRepository.create({
38
+ name: dto.name,
39
+ hashedKey,
40
+ maskedKey,
41
+ isActive: true,
42
+ expiresAt: dto.expiresAt ? new Date(dto.expiresAt) : null,
43
+ user,
44
+ });
45
+ await this.apiKeyRepository.save(record);
46
+ delete record.hashedKey;
47
+ return { apiKey: rawKey, record };
48
+ }
49
+ async validate(rawKey) {
50
+ const hashedKey = this.hash(rawKey);
51
+ const keyRecord = await this.apiKeyRepository.findOne({
52
+ where: { hashedKey, isActive: true },
53
+ relations: ['user', 'user.roles'],
54
+ });
55
+ if (!keyRecord) {
56
+ throw new common_1.UnauthorizedException();
57
+ }
58
+ if (keyRecord.expiresAt && keyRecord.expiresAt < new Date()) {
59
+ throw new common_1.UnauthorizedException('API key expired');
60
+ }
61
+ this.apiKeyRepository.update(keyRecord.id, { lastUsedAt: new Date() }).catch((err) => {
62
+ this.logger.warn(`Failed to update lastUsedAt for key ${keyRecord.id}: ${err.message}`);
63
+ });
64
+ const roles = (keyRecord.user.roles ?? []).map((r) => r.name);
65
+ const permissions = await this.permissionMetadataService.findAllUsingRoles(roles);
66
+ return {
67
+ sub: keyRecord.user.id,
68
+ username: keyRecord.user.username,
69
+ email: keyRecord.user.email,
70
+ roles,
71
+ permissions: permissions.map((p) => p.name),
72
+ };
73
+ }
74
+ async updateKey(id, userId, dto) {
75
+ const keyRecord = await this.apiKeyRepository.findOne({
76
+ where: { id, user: { id: userId } },
77
+ });
78
+ if (!keyRecord) {
79
+ throw new common_1.NotFoundException('API key not found');
80
+ }
81
+ await this.apiKeyRepository.manager
82
+ .createQueryBuilder()
83
+ .update(user_api_key_entity_1.UserApiKey)
84
+ .set({ isActive: dto.isActive })
85
+ .where('id = :id', { id })
86
+ .execute();
87
+ }
88
+ hash(rawKey) {
89
+ return (0, crypto_1.createHash)('sha256').update(rawKey).digest('hex');
90
+ }
91
+ };
92
+ exports.ApiKeyService = ApiKeyService;
93
+ exports.ApiKeyService = ApiKeyService = ApiKeyService_1 = __decorate([
94
+ (0, common_1.Injectable)(),
95
+ __metadata("design:paramtypes", [user_api_key_repository_1.UserApiKeyRepository,
96
+ permission_metadata_service_1.PermissionMetadataService])
97
+ ], ApiKeyService);
98
+ //# sourceMappingURL=api-key.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key.service.js","sourceRoot":"","sources":["../../src/services/api-key.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ForbiddenException,\n Injectable,\n Logger,\n NotFoundException,\n UnauthorizedException,\n} from '@nestjs/common';\nimport { createHash, randomBytes } from 'crypto';\nimport { CreateApiKeyDto } from 'src/dtos/create-api-key.dto';\nimport { UpdateApiKeyDto } from 'src/dtos/update-api-key.dto';\nimport { UserApiKey } from 'src/entities/user-api-key.entity';\nimport { User } from 'src/entities/user.entity';\nimport { ActiveUserData } from 'src/interfaces/active-user-data.interface';\nimport { UserApiKeyRepository } from 'src/repository/user-api-key.repository';\nimport { PermissionMetadataService } from 'src/services/permission-metadata.service';\n\n@Injectable()\nexport class ApiKeyService {\n private readonly logger = new Logger(ApiKeyService.name);\n\n constructor(\n private readonly apiKeyRepository: UserApiKeyRepository,\n private readonly permissionMetadataService: PermissionMetadataService,\n ) {}\n\n async generate(userId: number, dto: CreateApiKeyDto): Promise<{ apiKey: string; record: UserApiKey }> {\n const user = await this.apiKeyRepository.manager.findOne(User, {\n where: { id: userId },\n select: ['id', 'isAllowedToGenerateApiKeys'],\n });\n\n if (!user?.isAllowedToGenerateApiKeys) {\n throw new ForbiddenException('You are not allowed to generate API keys');\n }\n\n const rawKey = 'sldx_' + randomBytes(32).toString('hex');\n const hashedKey = this.hash(rawKey);\n const maskedKey = 'sldx_****' + rawKey.slice(-4);\n\n const record = this.apiKeyRepository.create({\n name: dto.name,\n hashedKey,\n maskedKey,\n isActive: true,\n expiresAt: dto.expiresAt ? new Date(dto.expiresAt) : null,\n user,\n });\n\n await this.apiKeyRepository.save(record);\n\n // Strip hashedKey from the returned record — maskedKey is all the UI needs\n delete (record as any).hashedKey;\n\n return { apiKey: rawKey, record };\n }\n\n async validate(rawKey: string): Promise<ActiveUserData> {\n const hashedKey = this.hash(rawKey);\n\n // Bypass security rules for auth validation — must find the key regardless of caller context\n const keyRecord = await this.apiKeyRepository.findOne({\n where: { hashedKey, isActive: true },\n relations: ['user', 'user.roles'],\n });\n\n if (!keyRecord) {\n throw new UnauthorizedException();\n }\n\n if (keyRecord.expiresAt && keyRecord.expiresAt < new Date()) {\n throw new UnauthorizedException('API key expired');\n }\n\n // Fire-and-forget — does not need security rule context\n this.apiKeyRepository.update(keyRecord.id, { lastUsedAt: new Date() }).catch((err) => {\n this.logger.warn(`Failed to update lastUsedAt for key ${keyRecord.id}: ${err.message}`);\n });\n\n const roles = (keyRecord.user.roles ?? []).map((r) => r.name);\n const permissions = await this.permissionMetadataService.findAllUsingRoles(roles);\n\n return {\n sub: keyRecord.user.id,\n username: keyRecord.user.username,\n email: keyRecord.user.email,\n roles,\n permissions: permissions.map((p) => p.name),\n };\n }\n\n async updateKey(id: number, userId: number, dto: UpdateApiKeyDto): Promise<void> {\n const keyRecord = await this.apiKeyRepository.findOne({\n where: { id, user: { id: userId } },\n });\n\n if (!keyRecord) {\n throw new NotFoundException('API key not found');\n }\n\n await this.apiKeyRepository.manager\n .createQueryBuilder()\n .update(UserApiKey)\n .set({ isActive: dto.isActive })\n .where('id = :id', { id })\n .execute();\n }\n\n private hash(rawKey: string): string {\n return createHash('sha256').update(rawKey).digest('hex');\n }\n}\n"]}
@@ -18,6 +18,7 @@ import { User } from '../entities/user.entity';
18
18
  import { ActiveUserData } from '../interfaces/active-user-data.interface';
19
19
  import { HashingService } from './hashing.service';
20
20
  import { RefreshTokenIdsStorageService } from './refresh-token-ids-storage.service';
21
+ import { SsoCodeStorageService } from './sso-code-storage.service';
21
22
  import { RoleMetadataService } from './role-metadata.service';
22
23
  import { SettingService } from './setting.service';
23
24
  import { UserActivityHistoryService } from './user-activity-history.service';
@@ -36,9 +37,10 @@ export declare class AuthenticationService {
36
37
  private readonly settingService;
37
38
  private readonly roleMetadataService;
38
39
  private readonly userActivityHistoryService;
40
+ private readonly ssoCodeStorage;
39
41
  private readonly dataSource;
40
42
  private readonly logger;
41
- constructor(userService: UserService, userRepository: UserRepository, hashingService: HashingService, jwtService: JwtService, refreshTokenIdsStorage: RefreshTokenIdsStorageService, httpService: HttpService, mailServiceFactory: MailFactory, smsFactory: SmsFactory, eventEmitter: EventEmitter2, settingService: SettingService, roleMetadataService: RoleMetadataService, userActivityHistoryService: UserActivityHistoryService, dataSource: DataSource);
43
+ constructor(userService: UserService, userRepository: UserRepository, hashingService: HashingService, jwtService: JwtService, refreshTokenIdsStorage: RefreshTokenIdsStorageService, httpService: HttpService, mailServiceFactory: MailFactory, smsFactory: SmsFactory, eventEmitter: EventEmitter2, settingService: SettingService, roleMetadataService: RoleMetadataService, userActivityHistoryService: UserActivityHistoryService, ssoCodeStorage: SsoCodeStorageService, dataSource: DataSource);
42
44
  private getCompanyLogo;
43
45
  resolveUser(username: string, email: string): Promise<User>;
44
46
  updatePasswordDetails(user: User, newPassword: string): Promise<User>;
@@ -119,6 +121,7 @@ export declare class AuthenticationService {
119
121
  }>;
120
122
  private validateLoginOtp;
121
123
  private clearLoginOtp;
124
+ private buildUserPayload;
122
125
  private buildLoginTokenResponse;
123
126
  changePassword(changePasswordDto: ChangePasswordDto, activeUser: ActiveUserData): Promise<boolean>;
124
127
  private generateForgotPasswordToken;
@@ -183,5 +186,20 @@ export declare class AuthenticationService {
183
186
  };
184
187
  refreshToken: any;
185
188
  }>;
189
+ generateSsoCode(activeUser: ActiveUserData, rawAccessToken: string): Promise<{
190
+ ssoCode: string;
191
+ }>;
192
+ exchangeSsoCode(code: string): Promise<{
193
+ accessToken: string;
194
+ refreshToken: string;
195
+ user: {
196
+ id: number;
197
+ username: string;
198
+ email: string;
199
+ mobile: string;
200
+ lastLoginProvider: string;
201
+ roles: string[];
202
+ };
203
+ }>;
186
204
  }
187
205
  //# sourceMappingURL=authentication.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.service.d.ts","sourceRoot":"","sources":["../../src/services/authentication.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authentication.service.d.ts","sourceRoot":"","sources":["../../src/services/authentication.service.ts"],"names":[],"mappings":"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"}