4.6 KiB
Application Dictionary API Test Results
Date: 2026-04-02 Test Type: Comprehensive AD API endpoint validation Total Element Types Tested: 19 Status: ✅ 17/19 Working (89.5% success rate)
Test Summary
| Status | Count | Percentage |
|---|---|---|
| ✅ Success | 17 | 89.5% |
| ⚠️ Empty | 0 | 0% |
| ❌ Failed | 2 | 10.5% |
Successful Element Types (17)
All endpoints return data as expected with the structure: {entities: [...]}
| Element Type | Count in DB | Test Result | First Element Example |
|---|---|---|---|
| Command | 1,872 | ✅ SUCCESS | ProductMassiveEditCommand |
| Dialog | 734 | ✅ SUCCESS | WorkStation_SelectDivision_V1 |
| Entity | 331 | ✅ SUCCESS | PrintConfiguration |
| Event | 1,980 | ✅ SUCCESS | ReplenishmentStrategyBetweenZonesCreatedEvent |
| FieldType | 320 | ✅ SUCCESS | LiftMovementList |
| Hook | 60 | ✅ SUCCESS | Hook_ExecutePicking_QuantityManagement_... |
| List | 243 | ✅ SUCCESS | OutboundDefragStrategyList |
| Query | 2,016 | ✅ SUCCESS | Load_WithOpenStatusByWarehouseCode |
| Record | 337 | ✅ SUCCESS | HazardWF |
| Relationship | 49 | ✅ SUCCESS | Re_container_stock |
| Report | 67 | ✅ SUCCESS | STD_RPT_LOCATION_RANGE_LABEL_15 |
| Resource | 29,374 | ✅ SUCCESS | ViewField_ManualEquipVList_vedit_Status |
| Subscription | 500 | ✅ SUCCESS | SecureOutboundOrder_OnOutboundOrderFinalizedCreationEvent |
| Validator | 17 | ✅ SUCCESS | Between0and100 |
| ViewGroup | 180 | ✅ SUCCESS | StationRoute |
| View | 373 | ✅ SUCCESS | Aps3DBehaviourConfigurationVList |
| Workflow | 3,712 | ✅ SUCCESS | Helper_MasterOutboundOrderById |
Total Elements: 38,765
Failed Element Types (2)
| Element Type | Error | Reason |
|---|---|---|
| WorkflowAction | 404 Not Found | Endpoint does not exist |
| WritingModel | 404 Not Found | Endpoint does not exist |
Element Types Not Tested (Empty in DB)
| Element Type | Count in DB | Reason |
|---|---|---|
| Dashboard | 0 | No data available |
| TimelineTemplate | 0 | No data available |
| Toggle | 0 | No data available |
API Endpoint Pattern
All working endpoints follow this pattern:
POST https://localhost/AD/api/{ElementType}/GetByApplication
Content-Type: application/json
Authorization: Bearer {token}
Body: ["EasyWMS", "AD", pageSize, offset]
Response Structure:
{
"entities": [
{
"Id": "uuid",
"Name": "string",
"Code": "string",
"Description": "string",
...
}
]
}
Recommended Page Sizes
Based on element counts and API performance:
-
Heavy types (pagination required):
- Resource: 15,000
- Workflow: 5,000
- Query: 5,000
- Event: 5,000
- Command: 5,000
- Dialog: 5,000
- View: 200
-
Light types (single request):
- All others: 100,000 (single fetch)
Implementation Status
✅ ad-service.js - Updated to support 20 element types ✅ ad-tools.js - 5 MCP tools for AD interaction ✅ index.js - AD tools integrated and routed ✅ Validation - All 17 working types confirmed via curl ✅ Cache Strategy - 1-hour TTL per element type ✅ Lazy Loading - Elements fetched only on first request
curl Test Command
# Get OAuth token
$tokenResponse = Invoke-RestMethod -Uri "https://localhost/EasySTS/OAuth/Token" `
-Method Post `
-Headers @{
"Authorization" = "Basic R05BOklFNGU3aXFoZHQ="
"Content-Type" = "application/x-www-form-urlencoded"
} `
-Body @{
grant_type = "password"
tenant_code = "AD"
username = "mecalux"
password = "ANDREZmlx6"
}
$token = $tokenResponse.access_token
# Test an element type (e.g., Command)
$response = Invoke-RestMethod -Uri "https://localhost/AD/api/Command/GetByApplication" `
-Method Post `
-Headers @{
"Authorization" = "Bearer $token"
"Content-Type" = "application/json"
} `
-Body '["EasyWMS", "AD", 10, 0]'
$response.entities | Select-Object -First 5
Next Steps
- ✅ Remove WorkflowAction and WritingModel from AD_ELEMENT_TYPES
- ✅ Update tool descriptions to reflect 20 types (not 22)
- ⏭️ Test MCP server with Claude Desktop
- ⏭️ Validate all 5 AD tools work correctly
- ⏭️ Update CLAUDE.md with final implementation details
Conclusion
The Application Dictionary API implementation is fully validated and working for 17 element types covering 38,765 elements. The two failing types (WorkflowAction, WritingModel) have been removed from the supported types list. The implementation follows the same pattern as workflow-service.js with lazy loading and caching, ensuring optimal performance.