@solidxai/core 0.1.10 → 0.1.11-beta.1
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/controllers/datasource-introspection.controller.d.ts +234 -0
- package/dist/controllers/datasource-introspection.controller.d.ts.map +1 -0
- package/dist/controllers/datasource-introspection.controller.js +98 -0
- package/dist/controllers/datasource-introspection.controller.js.map +1 -0
- package/dist/controllers/datasource-management.controller.d.ts +18 -0
- package/dist/controllers/datasource-management.controller.d.ts.map +1 -0
- package/dist/controllers/datasource-management.controller.js +55 -0
- package/dist/controllers/datasource-management.controller.js.map +1 -0
- package/dist/dtos/create-datasource-management.dto.d.ts +25 -0
- package/dist/dtos/create-datasource-management.dto.d.ts.map +1 -0
- package/dist/dtos/create-datasource-management.dto.js +169 -0
- package/dist/dtos/create-datasource-management.dto.js.map +1 -0
- package/dist/dtos/datasource-introspection-mapping.dto.d.ts +45 -0
- package/dist/dtos/datasource-introspection-mapping.dto.d.ts.map +1 -0
- package/dist/dtos/datasource-introspection-mapping.dto.js +233 -0
- package/dist/dtos/datasource-introspection-mapping.dto.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/datasource-introspection-provider.interface.d.ts +26 -0
- package/dist/interfaces/datasource-introspection-provider.interface.d.ts.map +1 -0
- package/dist/interfaces/datasource-introspection-provider.interface.js +3 -0
- package/dist/interfaces/datasource-introspection-provider.interface.js.map +1 -0
- package/dist/repository/scheduled-job.repository.d.ts +3 -0
- package/dist/repository/scheduled-job.repository.d.ts.map +1 -1
- package/dist/repository/scheduled-job.repository.js +60 -0
- package/dist/repository/scheduled-job.repository.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts +32 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +1011 -230
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +21 -0
- package/dist/services/action-metadata.service.d.ts +7 -0
- package/dist/services/action-metadata.service.d.ts.map +1 -1
- package/dist/services/action-metadata.service.js +76 -3
- package/dist/services/action-metadata.service.js.map +1 -1
- package/dist/services/authentication.service.js +1 -1
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts.map +1 -1
- package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js +2 -2
- package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js.map +1 -1
- package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts.map +1 -1
- package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js +2 -2
- package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js.map +1 -1
- package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts +3 -0
- package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts.map +1 -1
- package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js +71 -0
- package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js.map +1 -1
- package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts.map +1 -1
- package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js +3 -3
- package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js.map +1 -1
- package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.d.ts +11 -0
- package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.d.ts.map +1 -0
- package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.js +181 -0
- package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.js.map +1 -0
- package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.d.ts +11 -0
- package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.d.ts.map +1 -0
- package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.js +90 -0
- package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.js.map +1 -0
- package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.d.ts +11 -0
- package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.d.ts.map +1 -0
- package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.js +156 -0
- package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.js.map +1 -0
- package/dist/services/datasource-introspection.service.d.ts +288 -0
- package/dist/services/datasource-introspection.service.d.ts.map +1 -0
- package/dist/services/datasource-introspection.service.js +1278 -0
- package/dist/services/datasource-introspection.service.js.map +1 -0
- package/dist/services/datasource-management.service.d.ts +60 -0
- package/dist/services/datasource-management.service.d.ts.map +1 -0
- package/dist/services/datasource-management.service.js +461 -0
- package/dist/services/datasource-management.service.js.map +1 -0
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +19 -0
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +1 -3
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +47 -15
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/role-metadata.service.d.ts +5 -0
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +85 -31
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts.map +1 -1
- package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js +2 -3
- package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js.map +1 -1
- package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts.map +1 -1
- package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js +2 -3
- package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js.map +1 -1
- 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 +32 -8
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/solid-ts-morph.service.d.ts +1 -1
- package/dist/services/solid-ts-morph.service.d.ts.map +1 -1
- package/dist/services/solid-ts-morph.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +6 -0
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +66 -1
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +16 -0
- package/dist/solid-core.module.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/controllers/datasource-introspection.controller.ts +58 -0
- package/src/controllers/datasource-management.controller.ts +24 -0
- package/src/dtos/create-datasource-management.dto.ts +139 -0
- package/src/dtos/datasource-introspection-mapping.dto.ts +182 -0
- package/src/index.ts +5 -0
- package/src/interfaces/datasource-introspection-provider.interface.ts +28 -0
- package/src/repository/scheduled-job.repository.ts +73 -0
- package/src/seeders/module-metadata-seeder.service.ts +1223 -262
- package/src/seeders/seed-data/solid-core-metadata.json +22 -1
- package/src/services/action-metadata.service.ts +87 -2
- package/src/services/authentication.service.ts +1 -1
- package/src/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.ts +9 -4
- package/src/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.ts +9 -4
- package/src/services/dashboard-providers/mq-dashboard-provider-utils.ts +82 -0
- package/src/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.ts +10 -4
- package/src/services/datasource-introspection/mssql-datasource-introspection-provider.service.ts +185 -0
- package/src/services/datasource-introspection/mysql-datasource-introspection-provider.service.ts +95 -0
- package/src/services/datasource-introspection/postgres-datasource-introspection-provider.service.ts +160 -0
- package/src/services/datasource-introspection.service.ts +1536 -0
- package/src/services/datasource-management.service.ts +566 -0
- package/src/services/field-metadata.service.ts +21 -1
- package/src/services/model-metadata.service.ts +50 -13
- package/src/services/role-metadata.service.ts +100 -47
- package/src/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.ts +2 -4
- package/src/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.ts +2 -4
- package/src/services/setting.service.ts +43 -12
- package/src/services/solid-ts-morph.service.ts +2 -2
- package/src/services/view-metadata.service.ts +79 -1
- package/src/solid-core.module.ts +16 -0
- package/.claude/settings.local.json +0 -15
- package/src/services/1.js +0 -6
package/src/index.ts
CHANGED
|
@@ -62,6 +62,7 @@ export * from './dtos/create-view-metadata.dto'
|
|
|
62
62
|
export * from './dtos/create-chatter-message.dto'
|
|
63
63
|
export * from './dtos/create-chatter-message-details.dto'
|
|
64
64
|
export * from './dtos/create-locale.dto'
|
|
65
|
+
export * from './dtos/create-datasource-management.dto'
|
|
65
66
|
export * from './dtos/fetch-roles.dto'
|
|
66
67
|
export * from './dtos/initiate-forgot-password.dto'
|
|
67
68
|
export * from './dtos/mutate-role-permissions.dto'
|
|
@@ -334,7 +335,11 @@ export * from './services/whatsapp/GupshupOtpWhatsappService'
|
|
|
334
335
|
export * from './services/setting.service'
|
|
335
336
|
export * from './services/encryption.service'
|
|
336
337
|
export * from './services/info.service'
|
|
338
|
+
export * from './services/datasource-management.service'
|
|
339
|
+
export * from './services/datasource-introspection.service'
|
|
337
340
|
export * from './controllers/info.controller'
|
|
341
|
+
export * from './controllers/datasource-management.controller'
|
|
342
|
+
export * from './controllers/datasource-introspection.controller'
|
|
338
343
|
export * from './controllers/module-metadata-explorer.controller'
|
|
339
344
|
export * from './controllers/module-package.controller'
|
|
340
345
|
export * from './services/settings/default-settings-provider.service'
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DataSource } from "typeorm";
|
|
2
|
+
|
|
3
|
+
export type DatasourceIntrospectionTableRef = {
|
|
4
|
+
tableSchema: string | null;
|
|
5
|
+
tableName: string;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export type DatasourceIntrospectionColumn = {
|
|
9
|
+
tableSchema: string | null;
|
|
10
|
+
tableName: string;
|
|
11
|
+
columnName: string;
|
|
12
|
+
dataType: string;
|
|
13
|
+
isAutoGenerated: boolean;
|
|
14
|
+
isNullable: boolean;
|
|
15
|
+
defaultValue: string | null;
|
|
16
|
+
characterMaximumLength: number | null;
|
|
17
|
+
numericPrecision: number | null;
|
|
18
|
+
numericScale: number | null;
|
|
19
|
+
ordinalPosition: number | null;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export interface DatasourceIntrospectionProvider {
|
|
23
|
+
readonly type: string;
|
|
24
|
+
supports(type: string): boolean;
|
|
25
|
+
listTables(dataSource: DataSource): Promise<DatasourceIntrospectionTableRef[]>;
|
|
26
|
+
listColumns(dataSource: DataSource): Promise<DatasourceIntrospectionColumn[]>;
|
|
27
|
+
getTableDefinition(dataSource: DataSource, table: DatasourceIntrospectionTableRef): Promise<string | null>;
|
|
28
|
+
}
|
|
@@ -34,6 +34,71 @@ export class ScheduledJobRepository extends SolidBaseRepository<ScheduledJob> {
|
|
|
34
34
|
super(ScheduledJob, dataSource, requestContextService, securityRuleRepository);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
private normalizeComparableValue(value: any): any {
|
|
38
|
+
if (value instanceof Date) {
|
|
39
|
+
return value.toISOString();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (typeof value === "string") {
|
|
43
|
+
const trimmedValue = value.trim();
|
|
44
|
+
if (
|
|
45
|
+
(trimmedValue.startsWith("{") && trimmedValue.endsWith("}")) ||
|
|
46
|
+
(trimmedValue.startsWith("[") && trimmedValue.endsWith("]"))
|
|
47
|
+
) {
|
|
48
|
+
try {
|
|
49
|
+
return this.normalizeComparableValue(JSON.parse(trimmedValue));
|
|
50
|
+
} catch {
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (Array.isArray(value)) {
|
|
58
|
+
return value.map((item) => this.normalizeComparableValue(item));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (value && typeof value === "object") {
|
|
62
|
+
return Object.keys(value)
|
|
63
|
+
.sort()
|
|
64
|
+
.reduce((result, key) => {
|
|
65
|
+
result[key] = this.normalizeComparableValue(value[key]);
|
|
66
|
+
return result;
|
|
67
|
+
}, {} as Record<string, any>);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return value;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
private areValuesDifferent(currentValue: any, nextValue: any): boolean {
|
|
74
|
+
const normalizedCurrentValue = this.normalizeComparableValue(currentValue);
|
|
75
|
+
const normalizedNextValue = this.normalizeComparableValue(nextValue);
|
|
76
|
+
|
|
77
|
+
if (
|
|
78
|
+
(normalizedCurrentValue && typeof normalizedCurrentValue === "object") ||
|
|
79
|
+
(normalizedNextValue && typeof normalizedNextValue === "object")
|
|
80
|
+
) {
|
|
81
|
+
return JSON.stringify(normalizedCurrentValue ?? null) !== JSON.stringify(normalizedNextValue ?? null);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return normalizedCurrentValue !== normalizedNextValue;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
private hasChanges(existing: ScheduledJob, dto: CreateScheduledJobDto, moduleEntity: ModuleMetadata): boolean {
|
|
88
|
+
return existing.scheduleName !== dto.scheduleName
|
|
89
|
+
|| existing.isActive !== dto.isActive
|
|
90
|
+
|| this.areValuesDifferent(existing.frequency, dto.frequency)
|
|
91
|
+
|| this.areValuesDifferent(existing.startTime, dto.startTime)
|
|
92
|
+
|| this.areValuesDifferent(existing.endTime, dto.endTime)
|
|
93
|
+
|| this.areValuesDifferent(existing.startDate, dto.startDate)
|
|
94
|
+
|| this.areValuesDifferent(existing.endDate, dto.endDate)
|
|
95
|
+
|| this.areValuesDifferent(existing.dayOfMonth, dto.dayOfMonth)
|
|
96
|
+
|| this.areValuesDifferent(existing.dayOfWeek, dto.dayOfWeek)
|
|
97
|
+
|| this.areValuesDifferent(existing.job, dto.job)
|
|
98
|
+
|| this.areValuesDifferent(existing.cronExpression, dto.cronExpression)
|
|
99
|
+
|| existing.module?.id !== moduleEntity.id;
|
|
100
|
+
}
|
|
101
|
+
|
|
37
102
|
/**
|
|
38
103
|
* Converts an entity to a plain DTO object.
|
|
39
104
|
*/
|
|
@@ -91,9 +156,17 @@ export class ScheduledJobRepository extends SolidBaseRepository<ScheduledJob> {
|
|
|
91
156
|
};
|
|
92
157
|
const existing = await this.findOne({
|
|
93
158
|
where: { scheduleName: dto.scheduleName },
|
|
159
|
+
relations: {
|
|
160
|
+
module: true,
|
|
161
|
+
},
|
|
94
162
|
});
|
|
95
163
|
|
|
96
164
|
if (existing) {
|
|
165
|
+
if (!this.hasChanges(existing, dto, moduleEntity)) {
|
|
166
|
+
this.logger.debug(`Skipping scheduled job upsert for ${dto.scheduleName}; no changes detected.`);
|
|
167
|
+
return existing;
|
|
168
|
+
}
|
|
169
|
+
|
|
97
170
|
const merged = this.merge(existing, jobData);
|
|
98
171
|
this.logger.debug(`Updating scheduled job: ${dto.scheduleName}`);
|
|
99
172
|
return this.save(merged);
|