# 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:** ```json { "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 ```powershell # 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 = $env:WMS_USERNAME password = $env:WMS_PASSWORD } $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 ``` ## Suivi Toutes les actions issues de cette campagne sont closes : - `WorkflowAction` et `WritingModel` retirés de `AD_ELEMENT_TYPES` (D17). - Descriptions des outils alignées sur **20** types. - Les 5 outils AD sont opérationnels et validés avec Claude Desktop. - Architecture et pièges consignés dans [../CLAUDE.md](../CLAUDE.md) et [../DECISIONS.md](../DECISIONS.md). Pour rejouer la campagne complète : ```bash powershell -ExecutionPolicy Bypass -File ../scripts/test-ad-api.ps1 -WmsHost -Username -Password '***' -Tenant AD ``` ## 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.