@solidxai/core 0.1.11-beta.4 → 0.1.11-beta.6
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/dist/commands/migrate-removed-fields.command.d.ts +19 -0
- package/dist/commands/migrate-removed-fields.command.d.ts.map +1 -0
- package/dist/commands/migrate-removed-fields.command.js +77 -0
- package/dist/commands/migrate-removed-fields.command.js.map +1 -0
- package/dist/dtos/datasource-introspection-mapping.dto.d.ts +1 -0
- package/dist/dtos/datasource-introspection-mapping.dto.d.ts.map +1 -1
- package/dist/dtos/datasource-introspection-mapping.dto.js +7 -1
- package/dist/dtos/datasource-introspection-mapping.dto.js.map +1 -1
- package/dist/helpers/command.service.d.ts +2 -0
- package/dist/helpers/command.service.d.ts.map +1 -1
- package/dist/helpers/command.service.js +6 -2
- package/dist/helpers/command.service.js.map +1 -1
- package/dist/helpers/nodemon-heartbeat.d.ts +5 -0
- package/dist/helpers/nodemon-heartbeat.d.ts.map +1 -0
- package/dist/helpers/nodemon-heartbeat.js +67 -0
- package/dist/helpers/nodemon-heartbeat.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts +7 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +102 -1
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +109 -31
- package/dist/services/api-key.service.d.ts.map +1 -1
- package/dist/services/api-key.service.js.map +1 -1
- package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.d.ts +4 -0
- package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.d.ts.map +1 -1
- package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.js +18 -1
- package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +1 -0
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +27 -0
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/datasource-introspection.service.d.ts +1 -0
- package/dist/services/datasource-introspection.service.d.ts.map +1 -1
- package/dist/services/datasource-introspection.service.js +27 -16
- package/dist/services/datasource-introspection.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +3 -0
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +1 -0
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +28 -0
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +27 -0
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/removed-field-migration.service.d.ts +30 -0
- package/dist/services/removed-field-migration.service.d.ts.map +1 -0
- package/dist/services/removed-field-migration.service.js +319 -0
- package/dist/services/removed-field-migration.service.js.map +1 -0
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +4 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/audit.subscriber.d.ts +4 -1
- package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
- package/dist/subscribers/audit.subscriber.js +54 -6
- package/dist/subscribers/audit.subscriber.js.map +1 -1
- package/dist-tests/api/authenticate.spec.js +119 -0
- package/dist-tests/api/authenticate.spec.js.map +1 -0
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +97 -0
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +1 -0
- package/dist-tests/api/ping.spec.js +21 -0
- package/dist-tests/api/ping.spec.js.map +1 -0
- package/dist-tests/helpers/auth.js +41 -0
- package/dist-tests/helpers/auth.js.map +1 -0
- package/dist-tests/helpers/env.js +11 -0
- package/dist-tests/helpers/env.js.map +1 -0
- package/docs/agent-hub-grooming.md +301 -0
- package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +438 -0
- package/docs/dashboards/dashboard-curl-smoke-tests.txt +146 -0
- package/docs/dashboards/delete-legacy-dashboard-metadata.sql +172 -0
- package/docs/datasource-introspection-ddl-analysis.md +326 -0
- package/docs/datasource-introspection-implementation-plan.md +306 -0
- package/docs/grouping-enhancements.md +89 -0
- package/docs/java-spring/README.md +3 -0
- package/docs/java-spring/solid-core-module-deep-dive-report.md +1317 -0
- package/docs/module-package-import-handoff.md +691 -0
- package/docs/seed-changes.md +65 -0
- package/docs/test-data-workflow.md +200 -0
- package/docs/type-declaration-import-issue.md +24 -0
- package/package.json +1 -1
- package/src/commands/migrate-removed-fields.command.ts +81 -0
- package/src/dtos/datasource-introspection-mapping.dto.ts +5 -0
- package/src/helpers/command.service.ts +10 -2
- package/src/helpers/nodemon-heartbeat.ts +59 -0
- package/src/index.ts +1 -0
- package/src/seeders/module-metadata-seeder.service.ts +119 -0
- package/src/seeders/seed-data/solid-core-metadata.json +109 -31
- package/src/services/api-key.service.ts +36 -36
- package/src/services/computed-fields/entity/concat-entity-computed-field-provider.service.ts +15 -1
- package/src/services/crud.service.ts +36 -11
- package/src/services/datasource-introspection.service.ts +29 -16
- package/src/services/import-transaction.service.ts +5 -0
- package/src/services/model-metadata.service.ts +45 -1
- package/src/services/module-metadata.service.ts +35 -0
- package/src/services/removed-field-migration.service.ts +334 -0
- package/src/solid-core.module.ts +4 -0
- package/src/subscribers/audit.subscriber.ts +70 -5
- package/.claude/settings.local.json +0 -16
- package/CLAUDE.md +0 -26
- package/src/services/1.js +0 -6
|
@@ -8,6 +8,7 @@ import { UserService } from '../services/user.service';
|
|
|
8
8
|
import { DataSource } from 'typeorm';
|
|
9
9
|
import { SolidRegistry } from '../helpers/solid-registry';
|
|
10
10
|
import { ActionMetadataService } from '../services/action-metadata.service';
|
|
11
|
+
import { ApiKeyService } from '../services/api-key.service';
|
|
11
12
|
import { FieldMetadataService } from '../services/field-metadata.service';
|
|
12
13
|
import { MediaStorageProviderMetadataService } from '../services/media-storage-provider-metadata.service';
|
|
13
14
|
import { ModelMetadataService } from '../services/model-metadata.service';
|
|
@@ -19,6 +20,7 @@ import { PermissionMetadataRepository } from '../repository/permission-metadata.
|
|
|
19
20
|
import { SavedFiltersRepository } from '../repository/saved-filters.repository';
|
|
20
21
|
import { ScheduledJobRepository } from '../repository/scheduled-job.repository';
|
|
21
22
|
import { SettingRepository } from '../repository/setting.repository';
|
|
23
|
+
import { UserApiKeyRepository } from '../repository/user-api-key.repository';
|
|
22
24
|
import { ModelSequenceRepository } from '../repository/model-sequence.repository';
|
|
23
25
|
import { LocaleRepository } from '../repository/locale.repository';
|
|
24
26
|
export declare class ModuleMetadataSeederService {
|
|
@@ -29,11 +31,13 @@ export declare class ModuleMetadataSeederService {
|
|
|
29
31
|
private readonly roleService;
|
|
30
32
|
private readonly userService;
|
|
31
33
|
private readonly authenticationService;
|
|
34
|
+
private readonly apiKeyService;
|
|
32
35
|
private readonly solidActionService;
|
|
33
36
|
private readonly solidViewService;
|
|
34
37
|
private readonly emailTemplateService;
|
|
35
38
|
private readonly smsTemplateService;
|
|
36
39
|
private readonly listOfValuesService;
|
|
40
|
+
private readonly userApiKeyRepository;
|
|
37
41
|
private readonly permissionRepo;
|
|
38
42
|
private readonly solidRegistry;
|
|
39
43
|
private readonly settingService;
|
|
@@ -55,7 +59,7 @@ export declare class ModuleMetadataSeederService {
|
|
|
55
59
|
private readonly viewLookupCache;
|
|
56
60
|
private readonly mediaStorageProviderLookupCache;
|
|
57
61
|
private enablePruning;
|
|
58
|
-
constructor(moduleMetadataService: ModuleMetadataService, modelMetadataService: ModelMetadataService, fieldMetadataService: FieldMetadataService, mediaStorageProviderMetadataService: MediaStorageProviderMetadataService, roleService: RoleMetadataService, userService: UserService, authenticationService: AuthenticationService, solidActionService: ActionMetadataService, solidViewService: ViewMetadataService, emailTemplateService: EmailTemplateService, smsTemplateService: SmsTemplateService, listOfValuesService: ListOfValuesService, permissionRepo: PermissionMetadataRepository, solidRegistry: SolidRegistry, settingService: SettingService, settingsRepo: SettingRepository, securityRuleRepo: SecurityRuleRepository, systemFieldsSeederService: SystemFieldsSeederService, scheduledJobRepository: ScheduledJobRepository, savedFiltersRepo: SavedFiltersRepository, dataSource: DataSource, modelSequenceRepo: ModelSequenceRepository, localeRepo: LocaleRepository);
|
|
62
|
+
constructor(moduleMetadataService: ModuleMetadataService, modelMetadataService: ModelMetadataService, fieldMetadataService: FieldMetadataService, mediaStorageProviderMetadataService: MediaStorageProviderMetadataService, roleService: RoleMetadataService, userService: UserService, authenticationService: AuthenticationService, apiKeyService: ApiKeyService, solidActionService: ActionMetadataService, solidViewService: ViewMetadataService, emailTemplateService: EmailTemplateService, smsTemplateService: SmsTemplateService, listOfValuesService: ListOfValuesService, userApiKeyRepository: UserApiKeyRepository, permissionRepo: PermissionMetadataRepository, solidRegistry: SolidRegistry, settingService: SettingService, settingsRepo: SettingRepository, securityRuleRepo: SecurityRuleRepository, systemFieldsSeederService: SystemFieldsSeederService, scheduledJobRepository: ScheduledJobRepository, savedFiltersRepo: SavedFiltersRepository, dataSource: DataSource, modelSequenceRepo: ModelSequenceRepository, localeRepo: LocaleRepository);
|
|
59
63
|
seed(conf?: any): Promise<void>;
|
|
60
64
|
private buildTimingPrefix;
|
|
61
65
|
private formatDuration;
|
|
@@ -96,6 +100,8 @@ export declare class ModuleMetadataSeederService {
|
|
|
96
100
|
private handleSeedActions;
|
|
97
101
|
private handleSeedViews;
|
|
98
102
|
private handleSeedUsers;
|
|
103
|
+
private ensureSystemAdminApiKey;
|
|
104
|
+
private writeSolidxAdminApiKeyConfig;
|
|
99
105
|
private seedModuleModelFields;
|
|
100
106
|
private getSeedArray;
|
|
101
107
|
private loadExistingFieldsByName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-metadata-seeder.service.d.ts","sourceRoot":"","sources":["../../src/seeders/module-metadata-seeder.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module-metadata-seeder.service.d.ts","sourceRoot":"","sources":["../../src/seeders/module-metadata-seeder.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,6 +52,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
52
52
|
exports.ModuleMetadataSeederService = void 0;
|
|
53
53
|
const common_1 = require("@nestjs/common");
|
|
54
54
|
const fs = __importStar(require("fs"));
|
|
55
|
+
const os = __importStar(require("os"));
|
|
55
56
|
const path = __importStar(require("path"));
|
|
56
57
|
const security_rule_repository_1 = require("../repository/security-rule.repository");
|
|
57
58
|
const authentication_service_1 = require("../services/authentication.service");
|
|
@@ -64,6 +65,7 @@ const typeorm_1 = require("typeorm");
|
|
|
64
65
|
const module_helper_1 = require("../helpers/module.helper");
|
|
65
66
|
const solid_registry_1 = require("../helpers/solid-registry");
|
|
66
67
|
const action_metadata_service_1 = require("../services/action-metadata.service");
|
|
68
|
+
const api_key_service_1 = require("../services/api-key.service");
|
|
67
69
|
const field_metadata_service_1 = require("../services/field-metadata.service");
|
|
68
70
|
const media_storage_provider_metadata_service_1 = require("../services/media-storage-provider-metadata.service");
|
|
69
71
|
const model_metadata_service_1 = require("../services/model-metadata.service");
|
|
@@ -76,6 +78,7 @@ const action_metadata_entity_1 = require("../entities/action-metadata.entity");
|
|
|
76
78
|
const menu_item_metadata_entity_1 = require("../entities/menu-item-metadata.entity");
|
|
77
79
|
const module_metadata_entity_1 = require("../entities/module-metadata.entity");
|
|
78
80
|
const role_metadata_entity_1 = require("../entities/role-metadata.entity");
|
|
81
|
+
const user_entity_1 = require("../entities/user.entity");
|
|
79
82
|
const create_menu_item_metadata_dto_1 = require("../dtos/create-menu-item-metadata.dto");
|
|
80
83
|
const create_user_dto_1 = require("../dtos/create-user.dto");
|
|
81
84
|
const create_role_metadata_dto_1 = require("../dtos/create-role-metadata.dto");
|
|
@@ -83,6 +86,7 @@ const permission_metadata_repository_1 = require("../repository/permission-metad
|
|
|
83
86
|
const saved_filters_repository_1 = require("../repository/saved-filters.repository");
|
|
84
87
|
const scheduled_job_repository_1 = require("../repository/scheduled-job.repository");
|
|
85
88
|
const setting_repository_1 = require("../repository/setting.repository");
|
|
89
|
+
const user_api_key_repository_1 = require("../repository/user-api-key.repository");
|
|
86
90
|
const model_sequence_repository_1 = require("../repository/model-sequence.repository");
|
|
87
91
|
const locale_repository_1 = require("../repository/locale.repository");
|
|
88
92
|
const model_sequence_entity_1 = require("../entities/model-sequence.entity");
|
|
@@ -95,7 +99,7 @@ const model_metadata_entity_1 = require("../entities/model-metadata.entity");
|
|
|
95
99
|
const permission_metadata_entity_1 = require("../entities/permission-metadata.entity");
|
|
96
100
|
const view_metadata_entity_1 = require("../entities/view-metadata.entity");
|
|
97
101
|
let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMetadataSeederService {
|
|
98
|
-
constructor(moduleMetadataService, modelMetadataService, fieldMetadataService, mediaStorageProviderMetadataService, roleService, userService, authenticationService, solidActionService, solidViewService, emailTemplateService, smsTemplateService, listOfValuesService, permissionRepo, solidRegistry, settingService, settingsRepo, securityRuleRepo, systemFieldsSeederService, scheduledJobRepository, savedFiltersRepo, dataSource, modelSequenceRepo, localeRepo) {
|
|
102
|
+
constructor(moduleMetadataService, modelMetadataService, fieldMetadataService, mediaStorageProviderMetadataService, roleService, userService, authenticationService, apiKeyService, solidActionService, solidViewService, emailTemplateService, smsTemplateService, listOfValuesService, userApiKeyRepository, permissionRepo, solidRegistry, settingService, settingsRepo, securityRuleRepo, systemFieldsSeederService, scheduledJobRepository, savedFiltersRepo, dataSource, modelSequenceRepo, localeRepo) {
|
|
99
103
|
this.moduleMetadataService = moduleMetadataService;
|
|
100
104
|
this.modelMetadataService = modelMetadataService;
|
|
101
105
|
this.fieldMetadataService = fieldMetadataService;
|
|
@@ -103,11 +107,13 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
103
107
|
this.roleService = roleService;
|
|
104
108
|
this.userService = userService;
|
|
105
109
|
this.authenticationService = authenticationService;
|
|
110
|
+
this.apiKeyService = apiKeyService;
|
|
106
111
|
this.solidActionService = solidActionService;
|
|
107
112
|
this.solidViewService = solidViewService;
|
|
108
113
|
this.emailTemplateService = emailTemplateService;
|
|
109
114
|
this.smsTemplateService = smsTemplateService;
|
|
110
115
|
this.listOfValuesService = listOfValuesService;
|
|
116
|
+
this.userApiKeyRepository = userApiKeyRepository;
|
|
111
117
|
this.permissionRepo = permissionRepo;
|
|
112
118
|
this.solidRegistry = solidRegistry;
|
|
113
119
|
this.settingService = settingService;
|
|
@@ -1075,6 +1081,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
1075
1081
|
}
|
|
1076
1082
|
for (let l = 0; l < users.length; l++) {
|
|
1077
1083
|
const user = users[l];
|
|
1084
|
+
const isSystemAdminUser = user.username === 'sa';
|
|
1078
1085
|
let exisitingUser = await this.timeOperation('user-find-by-username', () => this.userService.findOneByUsername(user.username), {
|
|
1079
1086
|
component: 'users',
|
|
1080
1087
|
serviceCall: 'userService.findOneByUsername',
|
|
@@ -1084,14 +1091,106 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
1084
1091
|
if (user.username === 'sa') {
|
|
1085
1092
|
user.password = create_user_dto_1.DEFAULT_SA_PASSWORD;
|
|
1086
1093
|
}
|
|
1094
|
+
if (isSystemAdminUser) {
|
|
1095
|
+
user.isAllowedToGenerateApiKeys = true;
|
|
1096
|
+
}
|
|
1087
1097
|
exisitingUser = await this.timeOperation('user-sign-up', () => this.authenticationService.signUp(user), {
|
|
1088
1098
|
component: 'users',
|
|
1089
1099
|
serviceCall: 'authenticationService.signUp',
|
|
1090
1100
|
details: `username=${user.username}`,
|
|
1091
1101
|
});
|
|
1102
|
+
if (isSystemAdminUser) {
|
|
1103
|
+
await this.timeOperation('seed-sa-api-key', async () => {
|
|
1104
|
+
const generatedApiKey = await this.apiKeyService.generate(exisitingUser.id, {
|
|
1105
|
+
name: 'Default SA API Key',
|
|
1106
|
+
});
|
|
1107
|
+
await this.writeSolidxAdminApiKeyConfig(generatedApiKey);
|
|
1108
|
+
}, {
|
|
1109
|
+
component: 'users',
|
|
1110
|
+
serviceCall: 'apiKeyService.generate',
|
|
1111
|
+
details: `username=${user.username}`,
|
|
1112
|
+
});
|
|
1113
|
+
}
|
|
1092
1114
|
this.logger.log(`Newly created user ${user.username}`);
|
|
1093
1115
|
}
|
|
1116
|
+
if (isSystemAdminUser) {
|
|
1117
|
+
await this.ensureSystemAdminApiKey(exisitingUser);
|
|
1118
|
+
}
|
|
1119
|
+
}
|
|
1120
|
+
}
|
|
1121
|
+
async ensureSystemAdminApiKey(existingUser) {
|
|
1122
|
+
if (!existingUser?.id) {
|
|
1123
|
+
return;
|
|
1124
|
+
}
|
|
1125
|
+
if (!existingUser.isAllowedToGenerateApiKeys) {
|
|
1126
|
+
await this.timeOperation('enable-sa-api-key-generation', () => this.userApiKeyRepository.manager.update(user_entity_1.User, { id: existingUser.id }, {
|
|
1127
|
+
isAllowedToGenerateApiKeys: true,
|
|
1128
|
+
}), {
|
|
1129
|
+
component: 'users',
|
|
1130
|
+
serviceCall: 'userRepository.update',
|
|
1131
|
+
details: `username=${existingUser.username}`,
|
|
1132
|
+
});
|
|
1133
|
+
existingUser.isAllowedToGenerateApiKeys = true;
|
|
1134
|
+
}
|
|
1135
|
+
const existingDefaultKey = await this.timeOperation('find-sa-default-api-key', () => this.userApiKeyRepository.findOne({
|
|
1136
|
+
where: {
|
|
1137
|
+
user: { id: existingUser.id },
|
|
1138
|
+
name: 'Default SA API Key',
|
|
1139
|
+
},
|
|
1140
|
+
relations: {
|
|
1141
|
+
user: true,
|
|
1142
|
+
},
|
|
1143
|
+
}), {
|
|
1144
|
+
component: 'users',
|
|
1145
|
+
serviceCall: 'userApiKeyRepository.findOne',
|
|
1146
|
+
details: `username=${existingUser.username}`,
|
|
1147
|
+
});
|
|
1148
|
+
if (existingDefaultKey) {
|
|
1149
|
+
return;
|
|
1150
|
+
}
|
|
1151
|
+
await this.timeOperation('seed-sa-api-key', async () => {
|
|
1152
|
+
const generatedApiKey = await this.apiKeyService.generate(existingUser.id, {
|
|
1153
|
+
name: 'Default SA API Key',
|
|
1154
|
+
});
|
|
1155
|
+
await this.writeSolidxAdminApiKeyConfig(generatedApiKey);
|
|
1156
|
+
}, {
|
|
1157
|
+
component: 'users',
|
|
1158
|
+
serviceCall: 'apiKeyService.generate',
|
|
1159
|
+
details: `username=${existingUser.username}`,
|
|
1160
|
+
});
|
|
1161
|
+
}
|
|
1162
|
+
async writeSolidxAdminApiKeyConfig(generatedApiKey) {
|
|
1163
|
+
const consumingProjectName = path.basename(process.cwd());
|
|
1164
|
+
const solidxDir = path.join(os.homedir(), '.solidx', consumingProjectName);
|
|
1165
|
+
const configPath = path.join(solidxDir, 'mcp.json');
|
|
1166
|
+
await fs.promises.mkdir(solidxDir, { recursive: true });
|
|
1167
|
+
let existingConfig = {};
|
|
1168
|
+
if (fs.existsSync(configPath)) {
|
|
1169
|
+
const rawConfig = await fs.promises.readFile(configPath, 'utf8');
|
|
1170
|
+
if (rawConfig.trim()) {
|
|
1171
|
+
const parsedConfig = JSON.parse(rawConfig);
|
|
1172
|
+
if (parsedConfig && typeof parsedConfig === 'object' && !Array.isArray(parsedConfig)) {
|
|
1173
|
+
existingConfig = parsedConfig;
|
|
1174
|
+
}
|
|
1175
|
+
else {
|
|
1176
|
+
this.logger.warn(`Expected ${configPath} to contain a JSON object. Overwriting with a new object.`);
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1094
1179
|
}
|
|
1180
|
+
const nextConfig = {
|
|
1181
|
+
...existingConfig,
|
|
1182
|
+
solidxAdminApiKey: {
|
|
1183
|
+
id: generatedApiKey.record.id,
|
|
1184
|
+
name: generatedApiKey.record.name,
|
|
1185
|
+
apiKey: generatedApiKey.apiKey,
|
|
1186
|
+
maskedKey: generatedApiKey.record.maskedKey,
|
|
1187
|
+
isActive: generatedApiKey.record.isActive,
|
|
1188
|
+
expiresAt: generatedApiKey.record.expiresAt,
|
|
1189
|
+
createdAt: generatedApiKey.record.createdAt,
|
|
1190
|
+
updatedAt: generatedApiKey.record.updatedAt,
|
|
1191
|
+
},
|
|
1192
|
+
};
|
|
1193
|
+
await fs.promises.writeFile(configPath, `${JSON.stringify(nextConfig, null, 2)}\n`, 'utf8');
|
|
1095
1194
|
}
|
|
1096
1195
|
async seedModuleModelFields(moduleMetadata) {
|
|
1097
1196
|
const fieldMetadataRepo = this.dataSource.getRepository(field_metadata_entity_1.FieldMetadata);
|
|
@@ -2079,11 +2178,13 @@ exports.ModuleMetadataSeederService = ModuleMetadataSeederService = ModuleMetada
|
|
|
2079
2178
|
role_metadata_service_1.RoleMetadataService,
|
|
2080
2179
|
user_service_1.UserService,
|
|
2081
2180
|
authentication_service_1.AuthenticationService,
|
|
2181
|
+
api_key_service_1.ApiKeyService,
|
|
2082
2182
|
action_metadata_service_1.ActionMetadataService,
|
|
2083
2183
|
view_metadata_service_1.ViewMetadataService,
|
|
2084
2184
|
email_template_service_1.EmailTemplateService,
|
|
2085
2185
|
sms_template_service_1.SmsTemplateService,
|
|
2086
2186
|
list_of_values_service_1.ListOfValuesService,
|
|
2187
|
+
user_api_key_repository_1.UserApiKeyRepository,
|
|
2087
2188
|
permission_metadata_repository_1.PermissionMetadataRepository,
|
|
2088
2189
|
solid_registry_1.SolidRegistry,
|
|
2089
2190
|
setting_service_1.SettingService,
|