Files
mcp-wms-api/docs/ad-api-validation.md
T
Arthur Ria 9b95e15cbc Nettoyage du dépôt : doublons, code mort, secrets, build
Fichiers hors périmètre ou dupliqués :
- suppression des 5 .md dupliqués à la racine (copies md5-identiques de
  docs/api/ et docs/entities/)
- suppression de JANITOR_main.js / JANITOR_entities.json (application
  Electron sans lien avec le serveur MCP)
- suppression de temp/*.json (dumps de workflows versionnés par accident)
  et ajout de temp/ au .gitignore
- suppression de claude_desktop_config_ssh.json : mots de passe en clair et
  variables ORACLE_* d'une architecture abandonnée
- AD_API_TEST_RESULTS.md -> docs/ad-api-validation.md (credentials du
  snippet remplacés par des variables d'environnement)
- suppression d'IMPLEMENTATION_SUMMARY.md, doublon du précédent
- queries api.php -> docs/reference-queries-api.php (renommage seul)

Code mort :
- suppression de src/resources/documentation.js : la resource docs:// n'a
  jamais été branchée dans src/index.js
- suppression de src/config/constants.js : module entièrement inutilisé,
  requis par wms-query-service.js mais dont aucune constante n'était lue.
  Emporte RESOURCE_URIS.WORKFLOWS_CATEGORIES, URI déclarée jamais servie.
- log-service.js : suppression de findRecentErrors, readFullLog et
  getLogStats, exportées mais exposées par aucun outil MCP
- suppression de LOG_FILE_PATTERN (lue depuis .env, jamais appliquée : le
  scan filtre sur .log en dur), y compris dans .env.example
- log-service.js : préfixe [Logs] sur les messages, comme les autres modules

Secrets :
- test-ad-api.ps1 -> scripts/test-ad-api.ps1, credentials passés en
  paramètres ou par WMS_USERNAME / WMS_PASSWORD au lieu d'être en dur

Build et test :
- @yao-pkg/pkg en devDependency, cible node22-win-x64 : npm run build
  échouait faute de pkg, et node20 n'a pas de binaire prébuilt (bascule sur
  une compilation de Node qui échoue sans toolchain MSVC)
- index.js : le .env est lu à côté de l'exécutable quand le serveur est
  packagé. Avec un chemin statique, pkg embarquait le .env dans le snapshot,
  figeant les credentials dans le binaire.
- scripts/test-connection.js : npm test pointait sur un fichier absent.
  Smoke test en lecture seule (OAuth, QueryExecute, QueryScalarExecute,
  API AD), par profil ou sur tous.

Vérifié après nettoyage : 23 outils et 6 resources répondent au handshake
MCP, npm test passe 4/4 contre le WMS.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 15:15:08 +02:00

4.9 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",
      ...
    }
  ]
}

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 = $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 et ../DECISIONS.md.

Pour rejouer la campagne complète :

powershell -ExecutionPolicy Bypass -File ../scripts/test-ad-api.ps1 -WmsHost <host> -Username <user> -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.