curl -X GET '{baseUrl}/api/platform/discover' \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Cache-Control: no-cache' \
-H 'Accept: */*'
{
"scanTimestamp": "2024-10-09T14:32:15.847Z",
"totalServices": 15,
"healthyServices": 14,
"unhealthyServices": 1,
"services": {
"flowxEngine": {
"name": "FlowX Engine",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://flowx-engine:8080",
"capabilities": ["process-execution", "workflow-management", "business-rules"],
"lastHealthCheck": "2024-10-09T14:32:10Z"
},
"flowxDesigner": {
"name": "FlowX Designer",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://flowx-designer:3000",
"capabilities": ["process-design", "ui-design", "form-builder"],
"lastHealthCheck": "2024-10-09T14:32:11Z"
},
"flowxAdmin": {
"name": "FlowX Admin",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://flowx-admin:4000",
"capabilities": ["user-management", "system-config", "monitoring"],
"lastHealthCheck": "2024-10-09T14:32:12Z"
},
"flowxCms": {
"name": "FlowX CMS",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://flowx-cms:5000",
"capabilities": ["content-management", "localization", "asset-management"],
"lastHealthCheck": "2024-10-09T14:32:13Z"
},
"documentManagement": {
"name": "Document Management Plugin",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://document-plugin:8081",
"capabilities": ["document-storage", "file-processing", "document-templates"],
"lastHealthCheck": "2024-10-09T14:32:14Z"
},
"notifications": {
"name": "Notifications Plugin",
"version": "5.1.0",
"status": "unhealthy",
"endpoint": "http://notifications-plugin:8082",
"capabilities": ["email-notifications", "sms-notifications", "push-notifications"],
"lastHealthCheck": "2024-10-09T14:30:00Z",
"error": "Connection timeout - service may be down"
},
"taskManagement": {
"name": "Task Management Plugin",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://task-plugin:8083",
"capabilities": ["task-assignment", "task-tracking", "workflow-integration"],
"lastHealthCheck": "2024-10-09T14:32:15Z"
}
},
"infrastructure": {
"database": {
"type": "PostgreSQL",
"version": "13.7",
"status": "healthy",
"connections": {
"active": 45,
"idle": 15,
"max": 100
},
"lastHealthCheck": "2024-10-09T14:32:00Z"
},
"messageBroker": {
"type": "Apache Kafka",
"version": "3.4.0",
"status": "healthy",
"brokers": 3,
"topics": 28,
"lastHealthCheck": "2024-10-09T14:32:05Z"
},
"redis": {
"type": "Redis",
"version": "7.0.11",
"status": "healthy",
"memory": {
"used": "245MB",
"available": "1GB"
},
"lastHealthCheck": "2024-10-09T14:32:08Z"
}
},
"externalIntegrations": {
"authProvider": {
"name": "Keycloak",
"status": "healthy",
"endpoint": "https://auth.company.com",
"lastHealthCheck": "2024-10-09T14:32:00Z"
},
"documentStorage": {
"name": "MinIO S3",
"status": "healthy",
"endpoint": "https://storage.company.com",
"buckets": 12,
"lastHealthCheck": "2024-10-09T14:32:02Z"
}
},
"summary": {
"scanDuration": "4.2s",
"newServicesFound": 0,
"configurationChanges": 2,
"issuesDetected": 1,
"recommendations": [
"Check notifications plugin connectivity",
"Consider scaling database connections"
]
}
}
Trigger a forced rescan of the platform to discover and refresh all available services and configurations
curl -X GET '{baseUrl}/api/platform/discover' \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Cache-Control: no-cache' \
-H 'Accept: */*'
{
"scanTimestamp": "2024-10-09T14:32:15.847Z",
"totalServices": 15,
"healthyServices": 14,
"unhealthyServices": 1,
"services": {
"flowxEngine": {
"name": "FlowX Engine",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://flowx-engine:8080",
"capabilities": ["process-execution", "workflow-management", "business-rules"],
"lastHealthCheck": "2024-10-09T14:32:10Z"
},
"flowxDesigner": {
"name": "FlowX Designer",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://flowx-designer:3000",
"capabilities": ["process-design", "ui-design", "form-builder"],
"lastHealthCheck": "2024-10-09T14:32:11Z"
},
"flowxAdmin": {
"name": "FlowX Admin",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://flowx-admin:4000",
"capabilities": ["user-management", "system-config", "monitoring"],
"lastHealthCheck": "2024-10-09T14:32:12Z"
},
"flowxCms": {
"name": "FlowX CMS",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://flowx-cms:5000",
"capabilities": ["content-management", "localization", "asset-management"],
"lastHealthCheck": "2024-10-09T14:32:13Z"
},
"documentManagement": {
"name": "Document Management Plugin",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://document-plugin:8081",
"capabilities": ["document-storage", "file-processing", "document-templates"],
"lastHealthCheck": "2024-10-09T14:32:14Z"
},
"notifications": {
"name": "Notifications Plugin",
"version": "5.1.0",
"status": "unhealthy",
"endpoint": "http://notifications-plugin:8082",
"capabilities": ["email-notifications", "sms-notifications", "push-notifications"],
"lastHealthCheck": "2024-10-09T14:30:00Z",
"error": "Connection timeout - service may be down"
},
"taskManagement": {
"name": "Task Management Plugin",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://task-plugin:8083",
"capabilities": ["task-assignment", "task-tracking", "workflow-integration"],
"lastHealthCheck": "2024-10-09T14:32:15Z"
}
},
"infrastructure": {
"database": {
"type": "PostgreSQL",
"version": "13.7",
"status": "healthy",
"connections": {
"active": 45,
"idle": 15,
"max": 100
},
"lastHealthCheck": "2024-10-09T14:32:00Z"
},
"messageBroker": {
"type": "Apache Kafka",
"version": "3.4.0",
"status": "healthy",
"brokers": 3,
"topics": 28,
"lastHealthCheck": "2024-10-09T14:32:05Z"
},
"redis": {
"type": "Redis",
"version": "7.0.11",
"status": "healthy",
"memory": {
"used": "245MB",
"available": "1GB"
},
"lastHealthCheck": "2024-10-09T14:32:08Z"
}
},
"externalIntegrations": {
"authProvider": {
"name": "Keycloak",
"status": "healthy",
"endpoint": "https://auth.company.com",
"lastHealthCheck": "2024-10-09T14:32:00Z"
},
"documentStorage": {
"name": "MinIO S3",
"status": "healthy",
"endpoint": "https://storage.company.com",
"buckets": 12,
"lastHealthCheck": "2024-10-09T14:32:02Z"
}
},
"summary": {
"scanDuration": "4.2s",
"newServicesFound": 0,
"configurationChanges": 2,
"issuesDetected": 1,
"recommendations": [
"Check notifications plugin connectivity",
"Consider scaling database connections"
]
}
}
curl -X GET '{baseUrl}/api/platform/discover' \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Cache-Control: no-cache' \
-H 'Accept: */*'
Bearer YOUR_API_TOKENno-cache to ensure fresh discovery results{
"scanTimestamp": "2024-10-09T14:32:15.847Z",
"totalServices": 15,
"healthyServices": 14,
"unhealthyServices": 1,
"services": {
"flowxEngine": {
"name": "FlowX Engine",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://flowx-engine:8080",
"capabilities": ["process-execution", "workflow-management", "business-rules"],
"lastHealthCheck": "2024-10-09T14:32:10Z"
},
"flowxDesigner": {
"name": "FlowX Designer",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://flowx-designer:3000",
"capabilities": ["process-design", "ui-design", "form-builder"],
"lastHealthCheck": "2024-10-09T14:32:11Z"
},
"flowxAdmin": {
"name": "FlowX Admin",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://flowx-admin:4000",
"capabilities": ["user-management", "system-config", "monitoring"],
"lastHealthCheck": "2024-10-09T14:32:12Z"
},
"flowxCms": {
"name": "FlowX CMS",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://flowx-cms:5000",
"capabilities": ["content-management", "localization", "asset-management"],
"lastHealthCheck": "2024-10-09T14:32:13Z"
},
"documentManagement": {
"name": "Document Management Plugin",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://document-plugin:8081",
"capabilities": ["document-storage", "file-processing", "document-templates"],
"lastHealthCheck": "2024-10-09T14:32:14Z"
},
"notifications": {
"name": "Notifications Plugin",
"version": "5.1.0",
"status": "unhealthy",
"endpoint": "http://notifications-plugin:8082",
"capabilities": ["email-notifications", "sms-notifications", "push-notifications"],
"lastHealthCheck": "2024-10-09T14:30:00Z",
"error": "Connection timeout - service may be down"
},
"taskManagement": {
"name": "Task Management Plugin",
"version": "5.1.0",
"status": "healthy",
"endpoint": "http://task-plugin:8083",
"capabilities": ["task-assignment", "task-tracking", "workflow-integration"],
"lastHealthCheck": "2024-10-09T14:32:15Z"
}
},
"infrastructure": {
"database": {
"type": "PostgreSQL",
"version": "13.7",
"status": "healthy",
"connections": {
"active": 45,
"idle": 15,
"max": 100
},
"lastHealthCheck": "2024-10-09T14:32:00Z"
},
"messageBroker": {
"type": "Apache Kafka",
"version": "3.4.0",
"status": "healthy",
"brokers": 3,
"topics": 28,
"lastHealthCheck": "2024-10-09T14:32:05Z"
},
"redis": {
"type": "Redis",
"version": "7.0.11",
"status": "healthy",
"memory": {
"used": "245MB",
"available": "1GB"
},
"lastHealthCheck": "2024-10-09T14:32:08Z"
}
},
"externalIntegrations": {
"authProvider": {
"name": "Keycloak",
"status": "healthy",
"endpoint": "https://auth.company.com",
"lastHealthCheck": "2024-10-09T14:32:00Z"
},
"documentStorage": {
"name": "MinIO S3",
"status": "healthy",
"endpoint": "https://storage.company.com",
"buckets": 12,
"lastHealthCheck": "2024-10-09T14:32:02Z"
}
},
"summary": {
"scanDuration": "4.2s",
"newServicesFound": 0,
"configurationChanges": 2,
"issuesDetected": 1,
"recommendations": [
"Check notifications plugin connectivity",
"Consider scaling database connections"
]
}
}
Show Service details
Show Engine properties
healthy, unhealthy, or unknownShow Infrastructure details
Show Summary details
{
"error": "Unauthorized",
"message": "Invalid or missing authentication token",
"status": 401
}
{
"error": "Internal Server Error",
"message": "Platform rescan failed due to internal error",
"status": 500,
"details": "Connection timeout while discovering services"
}
const axios = require('axios');
async function forcePlatformRescan() {
try {
const response = await axios.get(`${baseUrl}/api/platform/discover`, {
headers: {
'Authorization': `Bearer ${apiToken}`,
'Cache-Control': 'no-cache'
}
});
const scanResult = response.data;
console.log(`Rescan completed in ${scanResult.summary.scanDuration}`);
console.log(`Services: ${scanResult.healthyServices}/${scanResult.totalServices} healthy`);
if (scanResult.summary.issuesDetected > 0) {
console.warn(`Issues detected: ${scanResult.summary.issuesDetected}`);
scanResult.summary.recommendations.forEach(rec => {
console.warn(`- ${rec}`);
});
}
return scanResult;
} catch (error) {
console.error('Rescan failed:', error.response?.data || error.message);
throw error;
}
}
# After deployment
kubectl apply -f new-service.yaml
# Then trigger rescan
curl -X GET '/api/platform/discover' -H 'Authorization: Bearer TOKEN'
Was this page helpful?