Skip to main content
GET
{baseUrl}
/
api
/
platform
/
discover
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"
    ]
  }
}
The Force Platform Rescan API endpoint allows you to trigger an immediate rescan of the FlowX platform to discover new or updated services, configurations, and components. This is particularly useful when you’ve deployed new services or made configuration changes that need to be immediately recognized by the platform.
This endpoint performs a comprehensive scan of the platform infrastructure and may take some time to complete depending on your platform size and complexity.

Endpoint

curl -X GET '{baseUrl}/api/platform/discover' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Cache-Control: no-cache' \
  -H 'Accept: */*'
baseUrl
string
required
The base URL of your FlowX platform instance

Headers

Authorization
string
required
Bearer token for API authentication. Format: Bearer YOUR_API_TOKEN
Cache-Control
string
default:"no-cache"
Controls caching behavior. Recommended to use no-cache to ensure fresh discovery results
Accept
string
default:"*/*"
Specifies the media types that are acceptable for the response
User-Agent
string
Identifies the client application making the request
Accept-Encoding
string
default:"gzip, deflate, br"
Specifies the content encoding that the client can understand

Response

{
  "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"
    ]
  }
}
scanTimestamp
string
ISO 8601 formatted timestamp of when the platform rescan was completed
totalServices
integer
Total number of services discovered during the rescan
healthyServices
integer
Number of services that are currently healthy and operational
unhealthyServices
integer
Number of services that are experiencing issues or are unreachable
services
object
Detailed information about all discovered FlowX platform services
infrastructure
object
Information about underlying infrastructure components
externalIntegrations
object
Status of external system integrations
summary
object
Summary information about the rescan operation

Error Responses

{
  "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"
}

Usage Examples

Basic Platform Rescan

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;
  }
}

When to Use Force Rescan

  • Service Deployment
  • Configuration Updates
  • Troubleshooting
After deploying new servicesUse force rescan when you’ve deployed new microservices or updated existing ones to ensure the platform recognizes all available endpoints and configurations.
# After deployment
kubectl apply -f new-service.yaml
# Then trigger rescan
curl -X GET '/api/platform/discover' -H 'Authorization: Bearer TOKEN'