@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.
- package/README.md +197 -0
- package/dist/controllers/authentication.controller.d.ts +32 -2
- package/dist/controllers/authentication.controller.d.ts.map +1 -1
- package/dist/controllers/authentication.controller.js +80 -3
- package/dist/controllers/authentication.controller.js.map +1 -1
- package/dist/dtos/create-api-key.dto.d.ts +5 -0
- package/dist/dtos/create-api-key.dto.d.ts.map +1 -0
- package/dist/dtos/create-api-key.dto.js +34 -0
- package/dist/dtos/create-api-key.dto.js.map +1 -0
- package/dist/dtos/register-private.dto.d.ts +3 -5
- package/dist/dtos/register-private.dto.d.ts.map +1 -1
- package/dist/dtos/register-private.dto.js +6 -18
- package/dist/dtos/register-private.dto.js.map +1 -1
- package/dist/dtos/sso-exchange.dto.d.ts +4 -0
- package/dist/dtos/sso-exchange.dto.d.ts.map +1 -0
- package/dist/dtos/sso-exchange.dto.js +26 -0
- package/dist/dtos/sso-exchange.dto.js.map +1 -0
- package/dist/dtos/update-api-key.dto.d.ts +4 -0
- package/dist/dtos/update-api-key.dto.d.ts.map +1 -0
- package/dist/dtos/update-api-key.dto.js +28 -0
- package/dist/dtos/update-api-key.dto.js.map +1 -0
- package/dist/entities/agent-event.entity.js +1 -1
- package/dist/entities/agent-event.entity.js.map +1 -1
- package/dist/entities/agent-session.entity.js +1 -1
- package/dist/entities/agent-session.entity.js.map +1 -1
- package/dist/entities/setting.entity.d.ts +1 -0
- package/dist/entities/setting.entity.d.ts.map +1 -1
- package/dist/entities/setting.entity.js +5 -1
- package/dist/entities/setting.entity.js.map +1 -1
- package/dist/entities/user-api-key.entity.d.ts +12 -0
- package/dist/entities/user-api-key.entity.d.ts.map +1 -0
- package/dist/entities/user-api-key.entity.js +62 -0
- package/dist/entities/user-api-key.entity.js.map +1 -0
- package/dist/entities/user.entity.d.ts +3 -0
- package/dist/entities/user.entity.d.ts.map +1 -1
- package/dist/entities/user.entity.js +12 -1
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/enums/auth-type.enum.d.ts +2 -1
- package/dist/enums/auth-type.enum.d.ts.map +1 -1
- package/dist/enums/auth-type.enum.js +2 -1
- package/dist/enums/auth-type.enum.js.map +1 -1
- package/dist/guards/api-key.guard.d.ts +11 -0
- package/dist/guards/api-key.guard.d.ts.map +1 -0
- package/dist/guards/api-key.guard.js +43 -0
- package/dist/guards/api-key.guard.js.map +1 -0
- package/dist/guards/authentication.guard.d.ts +4 -2
- package/dist/guards/authentication.guard.d.ts.map +1 -1
- package/dist/guards/authentication.guard.js +7 -3
- package/dist/guards/authentication.guard.js.map +1 -1
- package/dist/helpers/bootstrap.helper.d.ts.map +1 -1
- package/dist/helpers/bootstrap.helper.js +11 -0
- package/dist/helpers/bootstrap.helper.js.map +1 -1
- package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.js +15 -6
- package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +12 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/database/chatter-queue-publisher-database.service.d.ts +1 -1
- package/dist/jobs/database/chatter-queue-publisher-database.service.d.ts.map +1 -1
- package/dist/jobs/database/chatter-queue-publisher-database.service.js.map +1 -1
- package/dist/jobs/database/chatter-queue-subscriber-database.service.d.ts +1 -1
- package/dist/jobs/database/chatter-queue-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/chatter-queue-subscriber-database.service.js.map +1 -1
- package/dist/jobs/rabbitmq/chatter-queue-publisher.service.d.ts +1 -12
- package/dist/jobs/rabbitmq/chatter-queue-publisher.service.d.ts.map +1 -1
- package/dist/jobs/rabbitmq/chatter-queue-publisher.service.js.map +1 -1
- package/dist/jobs/rabbitmq/chatter-queue-subscriber.service.d.ts +1 -1
- package/dist/jobs/rabbitmq/chatter-queue-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/rabbitmq/chatter-queue-subscriber.service.js.map +1 -1
- package/dist/jobs/redis/chatter-queue-subscriber-redis.service.d.ts +1 -1
- package/dist/jobs/redis/chatter-queue-subscriber-redis.service.d.ts.map +1 -1
- package/dist/jobs/redis/chatter-queue-subscriber-redis.service.js.map +1 -1
- package/dist/repository/user-api-key.repository.d.ts +12 -0
- package/dist/repository/user-api-key.repository.d.ts.map +1 -0
- package/dist/repository/user-api-key.repository.js +34 -0
- package/dist/repository/user-api-key.repository.js.map +1 -0
- package/dist/seeders/seed-data/solid-core-metadata.json +145 -20
- package/dist/services/api-key.service.d.ts +20 -0
- package/dist/services/api-key.service.d.ts.map +1 -0
- package/dist/services/api-key.service.js +98 -0
- package/dist/services/api-key.service.js.map +1 -0
- package/dist/services/authentication.service.d.ts +19 -1
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +31 -5
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/encryption.service.d.ts +8 -0
- package/dist/services/encryption.service.d.ts.map +1 -0
- package/dist/services/encryption.service.js +75 -0
- package/dist/services/encryption.service.js.map +1 -0
- package/dist/services/setting.service.d.ts +1 -0
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +35 -7
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +12 -0
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +4 -3
- package/dist/services/settings/default-settings-provider.service.js.map +1 -1
- package/dist/services/sso-code-storage.service.d.ts +15 -0
- package/dist/services/sso-code-storage.service.d.ts.map +1 -0
- package/dist/services/sso-code-storage.service.js +47 -0
- package/dist/services/sso-code-storage.service.js.map +1 -0
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +10 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/audit.subscriber.d.ts +1 -1
- package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
- package/dist/subscribers/audit.subscriber.js.map +1 -1
- package/package.json +1 -1
- package/src/controllers/authentication.controller.ts +59 -3
- package/src/dtos/create-api-key.dto.ts +14 -0
- package/src/dtos/register-private.dto.ts +5 -14
- package/src/dtos/sso-exchange.dto.ts +7 -0
- package/src/dtos/update-api-key.dto.ts +9 -0
- package/src/entities/agent-event.entity.ts +1 -1
- package/src/entities/agent-session.entity.ts +1 -1
- package/src/entities/setting.entity.ts +3 -0
- package/src/entities/user-api-key.entity.ts +37 -0
- package/src/entities/user.entity.ts +8 -0
- package/src/enums/auth-type.enum.ts +1 -0
- package/src/guards/api-key.guard.ts +32 -0
- package/src/guards/authentication.guard.ts +6 -3
- package/src/helpers/bootstrap.helper.ts +15 -0
- package/src/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.ts +17 -6
- package/src/index.ts +2 -0
- package/src/interfaces.ts +16 -0
- package/src/jobs/database/chatter-queue-publisher-database.service.ts +1 -1
- package/src/jobs/database/chatter-queue-subscriber-database.service.ts +1 -1
- package/src/jobs/rabbitmq/chatter-queue-publisher.service.ts +1 -15
- package/src/jobs/rabbitmq/chatter-queue-subscriber.service.ts +1 -1
- package/src/jobs/redis/chatter-queue-subscriber-redis.service.ts +1 -1
- package/src/repository/user-api-key.repository.ts +17 -0
- package/src/seeders/seed-data/solid-core-metadata.json +145 -20
- package/src/services/api-key.service.ts +111 -0
- package/src/services/authentication.service.ts +35 -3
- package/src/services/encryption.service.ts +43 -0
- package/src/services/setting.service.ts +38 -9
- package/src/services/settings/default-settings-provider.service.ts +4 -3
- package/src/services/sso-code-storage.service.ts +36 -0
- package/src/solid-core.module.ts +10 -0
- 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 '
|
|
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 '
|
|
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,
|
|
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 '
|
|
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":
|
|
13732
|
+
"create": true,
|
|
13605
13733
|
"edit": true,
|
|
13606
|
-
"delete":
|
|
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":
|
|
13701
|
-
"edit":
|
|
13702
|
-
"delete":
|
|
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":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAY5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAOjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAgC,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAClH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAavD,qBACa,qBAAqB;IAI1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;
|
|
1
|
+
{"version":3,"file":"authentication.service.d.ts","sourceRoot":"","sources":["../../src/services/authentication.service.ts"],"names":[],"mappings":"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"}
|