kalicr/module-qa-automation-control (1.1.0)

Published 2026-08-24 20:02:14 +00:00 by kalicr-packages

Installation

{
	"repositories": [{
			"type": "composer",
			"url": ""
		}
	]
}
composer require kalicr/module-qa-automation-control:1.1.0

About this package

Secure QA automation control endpoints for Magento environments.

KaliCR Logo

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_patterns admite expresiones PCRE, patrones glob simples y coincidencia por substring.
  • Para QA se recomiendan expresiones regulares explícitas.
  • Las escrituras deben probarse primero con dryRun=true cuando el endpoint lo soporte.

Dependencias

  • Magento Open Source / Adobe Commerce: 2.4.62.4.8
  • PHP: 8.1, 8.2 o 8.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::read
  • Kali_QaAutomationControl::write

Recomendaciones:

  • usar una integración dedicada para QA;
  • no asignar All cuando 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:

  • disabled
  • enabled_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:

  • updated
  • already_confirmed
  • not_found
  • invalid_email
  • would_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, appliedState y success;
  • dryRun, executionType y runId;
  • projectId, siteSlug, userType y userId;
  • warnings, before y after.

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-control desde 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 GET de status, ReCaptcha y checkout.
  • Probar operaciones PUT con dryRun=true primero.

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

Keywords

magento2 qa automation recaptcha checkout
Details
Composer
2026-08-24 20:02:14 +00:00
9
Kal-i CR Development Team
MIT
123 KiB
Assets (1)
Versions (1) View all
1.1.0 2026-08-24