Add database adapter system, production deployment configs, and new dashboard components
- Add PostgreSQL and SQLite database adapters with factory pattern - Add migration script for SQLite to PostgreSQL - Add production Dockerfiles and docker-compose configs - Add deployment documentation and scripts - Add BIA sync dashboard and matching service - Add data completeness configuration and components - Add new dashboard components (BusinessImportanceComparison, ComplexityDynamics, etc.) - Update various services and routes - Remove deprecated management-parameters.json and taxonomy files
This commit is contained in:
@@ -219,6 +219,29 @@ class JiraAssetsClient {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the total count of objects for a specific type from Jira Assets
|
||||
* This is more efficient than fetching all objects when you only need the count
|
||||
*/
|
||||
async getObjectCount(typeName: CMDBObjectTypeName): Promise<number> {
|
||||
const typeDef = OBJECT_TYPES[typeName];
|
||||
if (!typeDef) {
|
||||
logger.warn(`JiraAssetsClient: Unknown type ${typeName}`);
|
||||
return 0;
|
||||
}
|
||||
|
||||
try {
|
||||
const iql = `objectType = "${typeDef.name}"`;
|
||||
// Use pageSize=1 to minimize data transfer, we only need the totalCount
|
||||
const result = await this.searchObjects(iql, 1, 1);
|
||||
logger.debug(`JiraAssetsClient: ${typeName} has ${result.totalCount} objects in Jira Assets`);
|
||||
return result.totalCount;
|
||||
} catch (error) {
|
||||
logger.error(`JiraAssetsClient: Failed to get count for ${typeName}`, error);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
async getAllObjectsOfType(
|
||||
typeName: CMDBObjectTypeName,
|
||||
batchSize: number = 40
|
||||
@@ -292,12 +315,13 @@ class JiraAssetsClient {
|
||||
const typeName = TYPE_ID_TO_NAME[typeId] || JIRA_NAME_TO_TYPE[jiraObj.objectType?.name];
|
||||
|
||||
if (!typeName) {
|
||||
logger.warn(`JiraAssetsClient: Unknown object type: ${jiraObj.objectType?.name} (ID: ${typeId})`);
|
||||
logger.warn(`JiraAssetsClient: Unknown object type for object ${jiraObj.objectKey || jiraObj.id}: ${jiraObj.objectType?.name} (ID: ${typeId})`);
|
||||
return null;
|
||||
}
|
||||
|
||||
const typeDef = OBJECT_TYPES[typeName];
|
||||
if (!typeDef) {
|
||||
logger.warn(`JiraAssetsClient: Type definition not found for type: ${typeName} (object: ${jiraObj.objectKey || jiraObj.id})`);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user