Gobernanza Edge Soberana: Administrando Workers sin Wrangler en Termux
En las arquitecturas convencionales sobre Cloudflare Workers, los flujos de desarrollo dependen estrictamente de utilidades CLI oficiales como wrangler. No obstante, al desplegar nodos soberanos en entornos móviles de borde (Android ARM64 vía Termux), la emulación local sobre miniflare/workerd falla de manera crítica al no existir un entorno ejecutable bajo glibc.
1. Causa Raíz: Incompatibilidad Bionic vs. glibc
Al intentar invocar el entorno de pruebas local (npx wrangler dev v3.x en Node.js v20+ ARM64), Wrangler intenta levantar el binario nativo precompilado de workerd. Al estar enlazado dinámicamente contra la biblioteca C de GNU (glibc), la ejecución colapsa inmediatamente sobre el runtime C nativo de Android (bionic).
$ npx wrangler dev[ERROR] Failed to start workerd: Error: /data/data/com.termux/files/usr/lib/libc.so: version 'GLIBC_2.34' not found
2. Despliegue Directo vía API REST v4 (Multipart)
Eludimos completamente el runtime local subiendo el bundle procesado en JavaScript directamente al plano de control de Cloudflare mediante la API REST v4 estructurada bajo el estándar multipart/form-data.
# A. Subida del bundle del Worker (ES Modules)
curl --fail-with-body --silent --show-error \
-X PUT "https://api.cloudflare.com/client/v4/accounts/$CF_ACCOUNT_ID/workers/scripts/$CF_WORKER_NAME/content" \
-H "Authorization: Bearer $CF_API_TOKEN" \
-F 'metadata={"main_module":"worker.js"};type=application/json' \
-F 'worker.js=@dist/worker.js;type=application/javascript+module'
# B. Inyección atómica y segura de secretos al Edge (evitando interpolación directa)
SECRET_PAYLOAD=$(jq -n --arg val "$VALUE" '{"name":"MASTER_SEAL_KEY","text":$val,"type":"secret_text"}')
curl -s -X PUT "https://api.cloudflare.com/client/v4/accounts/$CF_ACCOUNT_ID/workers/scripts/$CF_WORKER_NAME/secrets" \
-H "Authorization: Bearer $CF_API_TOKEN" \
-H "Content-Type: application/json" \
--data "$SECRET_PAYLOAD"
Este comando muestra la publicación de un Worker ESM sencillo de un solo módulo. Si el proyecto utiliza bindings, módulos auxiliares, assets, KV, D1, R2 o Durable Objects, la metadata y las partes multipart deben adaptarse a esos recursos.
3. Modelo Criptográfico: Firma Local vs. Verificación en Edge
Para asegurar un esquema Zero-Trust distribuido, establecemos un desacoplamiento estricto entre la custodia de secretos y la verificación:
- Firma Local (Nodo Soberano): Los payloads LBH se firman criptográficamente dentro del entorno aislado de Termux usando la clave privada resguardada en
~/.hormigas_secrets(protegida con permisos0600y sandboxing de UID en Android). - Verificación Edge (Cloudflare Worker): El Worker desplegado en el Edge almacena exclusivamente el secreto o clave pública de verificación para certificar el paquete entrante antes de autorizarlo, aislando la firma de origen de cualquier vector de exposición externa.
Referencias técnicas
- Cloudflare API. Actualización del contenido de un Worker .
- Cloudflare API. Actualización de secretos de un Worker .
- Documentación de infraestructura de HormigasAIS .