kalicr/module-qa-automation-control (1.1.0)
Installation
{
"repositories": [{
"type": "composer",
"url": " "
}
]
}composer require kalicr/module-qa-automation-control:1.1.0About this package
Módulo Kali_QaAutomationControl
Expone endpoints seguros y auditables para preparar y verificar flujos de automatización QA en Magento 2.
Este módulo es desarrollado por Kal-í CR Development Team.
Características
- Estado del entorno QA: reporta versión, modo, scope, módulos relevantes, sample data y métodos activos.
- Control de ReCaptcha: consulta y actualiza el estado permitido por los guardrails del entorno.
- Control de checkout: consulta y ajusta guest checkout con evidencia del estado aplicado.
- Confirmación de clientes QA: confirma cuentas por email con soporte de
dryRun. - Seguridad operativa: aplica ACL separada de lectura/escritura, restricciones por tienda y URL, y auditoría JSON line.
Alcance y exclusiones
El módulo no incluye factory de usuarios, data packs, orquestación de suites ni una UI Admin propia. Es una capa de control para que un pipeline externo prepare y verifique un entorno QA mediante contratos Magento autenticados.
Instalación
Vía Composer (único método soportado en producción)
Los paquetes KaliCR se distribuyen desde el registry Composer de Forgejo:
composer config repositories.kalicr composer https://git.kalicr.com/api/packages/kalicr/composer
composer require kalicr/module-qa-automation-control:^1.1
bin/magento module:enable Kali_QaAutomationControl
bin/magento setup:upgrade
bin/magento cache:clean
En desarrollo local del workbench magento-packages, clonar el repositorio bajo extensions/kalicr-qa-automation-control y requerir kalicr/module-qa-automation-control:@dev para trabajar mediante symlink.
Instalación manual
Solo para depuración puntual. No mantener una copia en app/code/ cuando el paquete también está instalado en vendor/, porque Magento registraría el módulo dos veces.
Configuración
Las operaciones de escritura permanecen deshabilitadas salvo que app/etc/env.php autorice explícitamente el entorno:
'kali_qa_automation' => [
'enabled' => true,
'allowed_store_codes' => ['default'],
'allowed_base_url_patterns' => ['#^https://qa\\.#', '#^https://.*\\.test$#'],
'deny_in_production_mode' => true,
],
allowed_base_url_patternsadmite expresiones PCRE, patrones glob simples y coincidencia por substring.- Para QA se recomiendan expresiones regulares explícitas.
- Las escrituras deben probarse primero con
dryRun=truecuando el endpoint lo soporte.
Dependencias
- Magento Open Source / Adobe Commerce:
2.4.6–2.4.8 - PHP:
8.1,8.2o8.3 - Módulos Magento: Authorization, Checkout, Customer, Payment, ReCaptcha Checkout, ReCaptcha Customer, Shipping, Store y Web API
Integración y ACL
Crear una integración dedicada en System > Extensions > Integrations y asignar solo los recursos necesarios:
Kali_QaAutomationControl::readKali_QaAutomationControl::write
Recomendaciones:
- usar una integración dedicada para QA;
- no asignar
Allcuando no sea necesario; - usar OAuth 1.0a por tienda y mantener las credenciales fuera del repositorio;
- no usar un token de usuario administrador como contrato principal.
Contrato de secretos sugerido para cada tienda:
<STORE>_QA_CONSUMER_KEY<STORE>_QA_CONSUMER_SECRET<STORE>_QA_ACCESS_TOKEN<STORE>_QA_ACCESS_TOKEN_SECRET
Endpoints
| Método | Ruta | Propósito |
|---|---|---|
GET |
/V1/qa/automation/status |
Consultar el estado general de automatización QA |
GET |
/V1/qa/recaptcha/state |
Consultar el estado efectivo de ReCaptcha |
PUT |
/V1/qa/recaptcha/state |
Aplicar un estado de ReCaptcha permitido |
GET |
/V1/qa/checkout/state |
Consultar guest checkout y métodos activos |
PUT |
/V1/qa/checkout/state |
Actualizar guest checkout de forma controlada |
PUT |
/V1/qa/customers/confirmation |
Confirmar clientes QA por email |
Estado general QA
GET /V1/qa/automation/status devuelve:
- versión y modo de Magento;
- versión del módulo;
- scope resuelto y guardrail de escritura;
- estado de ReCaptcha y checkout guest;
- shipping y payment methods activos;
- presencia de sample data;
- flags de módulos relevantes.
Estado de ReCaptcha
GET /V1/qa/recaptcha/state devuelve el estado efectivo, formularios y keys configuradas, probe runtime, markers detectados, guardrail, warnings y matchesExpected.
PUT /V1/qa/recaptcha/state admite estos estados:
disabledenabled_without_bypass
Estado de checkout
GET y PUT /V1/qa/checkout/state reportan guest checkout, métodos activos, métodos esperados, minimumSkus y minimumCategoryPaths.
La escritura se limita a checkout/options/guest_checkout.
Confirmación de clientes QA
PUT /V1/qa/customers/confirmation confirma clientes por email dentro del website resuelto desde el storeId solicitado.
Payload de ejemplo en modo seguro:
{
"storeId": "default",
"emails": [
"qa-user01@example.com",
"qa-user02@example.com"
],
"dryRun": true
}
También admite scope y executionContext. Los estados por email son:
updatedalready_confirmednot_foundinvalid_emailwould_update
En Magento, una cuenta confirmada tiene customer_entity.confirmation = NULL; este endpoint solo limpia ese valor de forma controlada para usuarios QA.
Auditoría
Las operaciones PUT escriben JSON line en var/log/kali_qa_automation.log. Si el archivo dedicado no puede persistirse, el módulo registra un warning en el logger estándar de Magento.
Campos relevantes:
timestamp,route,requestedState,appliedStateysuccess;dryRun,executionTypeyrunId;projectId,siteSlug,userTypeyuserId;warnings,beforeyafter.
Smoke básico
Reemplazar dominio, store y credencial por valores del entorno QA:
curl -sk "https://STORE_DOMAIN/rest/all/V1/qa/automation/status?storeId=STORE_SLUG&scopeType=default&scopeCode=default" \
-H "Authorization: Bearer TOKEN_O_COMPATIBLE"
curl -sk "https://STORE_DOMAIN/rest/all/V1/qa/checkout/state?storeId=STORE_SLUG&scopeType=default&scopeCode=default" \
-H "Authorization: Bearer TOKEN_O_COMPATIBLE"
curl -sk -X PUT "https://STORE_DOMAIN/rest/all/V1/qa/customers/confirmation" \
-H "Authorization: Bearer TOKEN_O_COMPATIBLE" \
-H "Content-Type: application/json" \
--data '{"storeId":"STORE_SLUG","emails":["qa-user@example.com"],"dryRun":true}'
Pruebas
Desde la raíz del módulo, con PHPUnit disponible:
vendor/bin/phpunit --configuration phpunit.xml.dist
Los tests de integración se ejecutan desde una instalación Magento real:
vendor/bin/phpunit -c dev/tests/integration/phpunit.xml \
app/code/Kali/QaAutomationControl/Test/Integration
Ajustar la ruta cuando el módulo esté instalado mediante Composer en vendor/.
Checklist de adopción
- Requerir
kalicr/module-qa-automation-controldesde el registry Forgejo. - Habilitar el módulo y ejecutar
setup:upgrade. - Configurar los guardrails en
env.php. - Crear una integración Magento dedicada QA.
- Asignar únicamente los ACL de lectura/escritura necesarios.
- Guardar las credenciales OAuth fuera del repositorio.
- Validar los endpoints
GETde status, ReCaptcha y checkout. - Probar operaciones
PUTcondryRun=trueprimero.
Changelog
Las notas de versión se mantienen en CHANGELOG.md.
Soporte
Para consultas o incidencias, contactar a Kal-í CR Development Team:
- Correo:
contacto@kalicr.com - Repositorio:
https://git.kalicr.com/kalicr/kalicr-qa-automation-control
Licencia
Este módulo se distribuye bajo la licencia MIT. Ver LICENSE.
Dependencies
Dependencies
| ID | Version |
|---|---|
| magento/framework | ^103.0 |
| magento/module-authorization | ^100.4 |
| magento/module-checkout | ^100.4 |
| magento/module-customer | ^103.0 |
| magento/module-payment | ^100.4 |
| magento/module-re-captcha-checkout | ^1.1 |
| magento/module-re-captcha-customer | ^1.1 |
| magento/module-shipping | ^100.4 |
| magento/module-store | ^101.1 |
| magento/module-webapi | ^100.4 |
| php | ^8.1 || ^8.2 || ^8.3 |
| psr/log | ^1.1 || ^2.0 || ^3.0 |