ADSystem360 · Integración WordPress

Proyecto Maestro
AdSystem360 Bridge

Portal WordPress mediante shortcodes para mostrar módulos reales de AdSystem360 sin duplicar aplicaciones, sin conectar WordPress directamente a MariaDB y sin inventar datos.

WordPress existente AdSystem360 existente Plugin propuesto Producción intacta
Dominio WordPress https://fireflyops360.com/
Sistema principal https://adsystem.fireflyops360.com/
Plugin propuesto AdSystem360 Bridge
Estado general PROPUESTO · Diagnóstico requerido
01

Objetivo

Integrar AdSystem360 dentro del WordPress existente mediante un puente seguro y controlado.

Propósito central

Permitir que páginas creadas con Elementor muestren información y funciones procedentes directamente de AdSystem360, manteniendo en Python la lógica, los permisos y la fuente real de datos.

WORDPRESS=ESCAPARATE_Y_PORTAL
PLUGIN=PUENTE_SEGURO
ADSystem360=CEREBRO_DEL_SISTEMA
PYTHON=LOGICA_Y_PERMISOS
MARIADB=FUENTE_UNICA_DE_DATOS

Ejemplos de uso en Elementor

Cargando AdSystem360…
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Los shortcodes solo solicitan una vista autorizada; no contienen la lógica comercial ni identificadores sensibles.

02

Principios obligatorios

Reglas que no pueden romperse durante el diagnóstico, la construcción ni la instalación.

  • APLICACION_PARALELA=NO
  • MODULOS_DUPLICADOS=NO
  • CONEXION_WORDPRESS_MARIADB=NO
  • DATOS_INVENTADOS=NO
  • CLIENT_ID_EN_SHORTCODE=NO
  • PASSWORDS_COMPARTIDAS=NO
  • ELEMENTOR_MODIFICADO=NO
  • ADSystem360_FUENTE_UNICA=SI
  • HTTPS_OBLIGATORIO=SI
  • PERMISOS_POR_USUARIO=SI
  • AUDITORIA=SI
  • ROLLBACK=OBLIGATORIO
Regla rectora: el plugin no contendrá la lógica comercial del sistema. Registrará shortcodes, identificará al usuario, solicitará autorización y mostrará únicamente la vista permitida.
03

Base ya existente

El proyecto no parte de cero: varias fichas y relaciones operativas ya están presentes en AdSystem360.

Ficha 360 del cliente

General Contactos Expectativas Expediente Sucursales Pantallas Campañas Emulador Tarifas Facturación Actividad Auditoría

Una sola ficha puede alimentar varios shortcodes abriendo la pestaña autorizada.

Ficha 360 de pantalla

Resumen Campañas Programación Emulador Medios

Ya relaciona una pantalla con campañas, programación, playlists y medios reales.

Catálogo de precios y servicios

Resumen Catálogos Conceptos Planes Perfiles comerciales Excepciones por cliente Documentos comerciales Pagos registrados Compromisos Conciliaciones

Será la fuente única para precios, planes, condiciones, descuentos y excepciones autorizadas.

Menú operativo observado

Empresa

Empresa.

Cliente

Clientes, Sucursales, Pantallas y Player Android.

Perfil comercial

Catálogo, Tarifario, Moneda, Condiciones de pago, Días de crédito y Descuentos autorizados.

Operación

Servicios contratados, Cotizaciones, Contratos, Órdenes, Campañas, Contenidos y Programación.

WordPress no reproducirá todo el menú administrativo. Solo mostrará funciones autorizadas para el cliente conectado.
04

Arquitectura propuesta

Cuatro capas separadas, con responsabilidades precisas.

1

WordPress + Elementor

fireflyops360.com

Contiene las páginas comerciales y el widget Shortcode.

2

AdSystem360 Bridge

Registra shortcodes, identifica al usuario y solicita acceso.

3

AdSystem360 · FastAPI

Valida origen, token, cliente, permisos y vista solicitada.

4

MariaDB real

Clientes, pantallas, campañas, medios, planes, precios, pagos y relaciones.

Elementor
  ↓ shortcode
AdSystem360 Bridge
  ↓ HTTPS seguro
AdSystem360 / FastAPI
  ↓ permisos y consultas
MariaDB real
05

Componentes del proyecto

Plugin, capa Python, autenticación y vinculación de identidades.

A · Plugin WordPress

  • Registrar shortcodes.
  • Configurar la URL de AdSystem360.
  • Identificar al usuario conectado.
  • Solicitar tokens temporales.
  • Crear el contenedor responsive.
  • Mostrar errores controlados.
  • Integrarse con Elementor.
  • No almacenar contraseñas de AdSystem360.
  • No consultar MariaDB directamente.
adsystem360-bridge/
├── adsystem360-bridge.php
├── includes/
│   ├── class-shortcodes.php
│   ├── class-settings.php
│   ├── class-api-client.php
│   ├── class-authentication.php
│   ├── class-embed-renderer.php
│   ├── class-security.php
│   └── class-error-handler.php
├── assets/
│   ├── css/
│   │   ├── bridge.css
│   │   └── admin.css
│   └── js/
│       └── bridge.js
├── templates/
│   ├── embed.php
│   ├── login-required.php
│   ├── access-denied.php
│   └── unavailable.php
├── languages/
├── uninstall.php
└── readme.txt

B · Capa de integración Python

Rutas propuestas, todavía sujetas a diagnóstico y verificación:

/integrations/wordpress/token
/integrations/wordpress/session
/portal/catalogo
/portal/cliente
/portal/pantallas
/portal/pantalla
/portal/campanas
/portal/programacion
/portal/emulador
/portal/medios
/portal/tarifas
/portal/facturacion
NUEVO_MODULO_COMERCIAL=NO
NUEVA_FICHA_CLIENTE=NO
NUEVA_FICHA_PANTALLA=NO
NUEVA_BASE_DE_DATOS=NO
NUEVO_MODO_DE_RENDER=POSIBLE

C · Autenticación

  1. El usuario inicia sesión en WordPress.
  2. WordPress conoce su identidad.
  3. El plugin solicita acceso a AdSystem360.
  4. AdSystem360 comprueba la vinculación.
  5. AdSystem360 emite un token temporal.
  6. El token contiene módulo y permisos.
  7. Se abre la vista portal.
  8. AdSystem360 vuelve a validar cada operación.
TOKEN_JWT=POR_DEFINIR
TOKEN_HMAC=POR_DEFINIR
SESION_INTERCAMBIADA=POR_DEFINIR

D · Vinculación de identidades

USUARIO_WORDPRESS
USUARIO_ADSYSTEM360
CLIENTE_ADSYSTEM360
ROL
PERMISOS
ESTADO

Ejemplo conceptual:

wordpress_user_id=84
adsystem_user_id=17
client_id=2
role=cliente
status=active

La ubicación definitiva de esta relación requiere diagnóstico. No se autoriza crear una tabla hasta verificar que no exista ya una entidad equivalente.

06

Tipos de acceso

Cada vista se clasifica como pública, privada del cliente o exclusivamente administrativa.

Público

  • Catálogo público.
  • Planes comerciales públicos.
  • Servicios.
  • Demostración del emulador.
  • Formulario de solicitud.

Cliente autenticado

  • Mi cuenta y mis sucursales.
  • Mis pantallas y campañas.
  • Mi programación y mis medios.
  • Mis tarifas y documentos.
  • Mis facturas, pagos y contratos.

Administrativo

  • Usuarios y auditoría completa.
  • Configuración global.
  • Costos internos y precios mínimos.
  • Conciliaciones administrativas.
  • Todas las excepciones y clientes.
  • Estado técnico del Player Android.
  • Builds, rutas internas, Plan Maestro y Knowledge administrativo.
07

Catálogo de shortcodes

Shortcodes propuestos para Elementor y su vista de origen dentro de AdSystem360.

Shortcodes públicos

Shortcode Función Estado
Cargando AdSystem360…
Catálogo público autorizado.Propuesto
Cargando AdSystem360…
Planes comerciales públicos.Propuesto
Cargando AdSystem360…
Conceptos públicos.Propuesto
Cargando AdSystem360…
Demostración sin datos privados.Propuesto
Cargando AdSystem360…
Solicitud de información o alta.Propuesto

Portal del cliente

Shortcode Vista de origen
Ficha Cliente · General.
Ficha Cliente · Contactos.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Ficha Cliente · Expediente.
Ficha Cliente · Sucursales.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Ficha Cliente · Pantallas.
Ficha Cliente · Campañas.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Ficha Cliente · Emulador.
Ficha Cliente · Tarifas.
Ficha Cliente · Facturación.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Actividad propia permitida.

Ficha de pantalla

Shortcode Vista
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Resumen de la pantalla seleccionada.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Campañas relacionadas.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Programación.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Emulador.
Medios y playlist.

Área comercial privada

Shortcode Función
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Conceptos contratados.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Plan vigente.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Precios autorizados para el cliente.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Excepciones propias.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Cotizaciones del cliente.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Contratos.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Órdenes o compromisos de servicio.
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Pagos registrados.
08

Parámetros permitidos y prohibidos

Elementor puede controlar presentación, pero nunca identidad, permisos o secretos.

Parámetros permitidos

vista orientacion altura tema mostrar_titulo mostrar_filtros
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Cargando AdSystem360…
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

Parámetros prohibidos para uso libre

client_id user_id screen_id_sin_validacion role permission price_profile_id token secret

Una pantalla se seleccionará desde el conjunto autorizado del usuario o mediante una referencia pública firmada. Nunca se confiará directamente en un ID escrito en Elementor.

09

Modos de renderizado

La misma lógica y los mismos datos se presentan de forma distinta según el contexto.

Modo administrador

MENU_LATERAL=VISIBLE
ENCABEZADO=VISIBLE
BOTONES_ADMIN=VISIBLES
AUDITORIA=COMPLETA

Modo portal

MENU_LATERAL=OCULTO
ENCABEZADO_INTERNO=REDUCIDO
BOTONES_ADMIN=OCULTOS
DATOS=SOLO_CLIENTE_ACTUAL

Modo embed

HTML_COMPLETO_GLOBAL=NO
BODY_DINAMICO=SI
RESPONSIVE=SI
ALTURA_AJUSTABLE=SI
NAVEGACION_INTERNA=CONTROLADA
Layout único: no se duplicará ui_layout.py. Primero debe verificarse cómo produce hoy el documento final y alrededor de ese propietario real se diseñará el modo portal.
10

Adaptación de controles

Las vistas del portal deben retirar acciones administrativas y conservar solo lo autorizado.

Ficha 360 del cliente

Cerrar superior=OCULTAR
Volver=ADAPTAR_AL_PORTAL
Editar=SEGUN_PERMISO
Auditoría=OCULTAR_PARA_CLIENTE
Actividad=LIMITADA_AL_CLIENTE

Ficha 360 de pantalla

Cerrar=OCULTAR
Ver clientes=OCULTAR
Ver sucursales=OCULTAR
Refrescar=MANTENER
Resumen=VISIBLE
Campañas=SEGUN_PERMISO
Programación=SEGUN_PLAN
Emulador=VISIBLE
Medios=SEGUN_PERMISO

Player Android

RUTAS_DE_SERVIDOR=OCULTAS
ESTADO_DE_GRADLE=OCULTO
ARCHIVOS_KOTLIN=OCULTOS
BUILD_INTERNO=OCULTO

El cliente solo vería:

  • Nombre del Player y pantalla asociada.
  • Estado y versión instalada.
  • Última conexión y sincronización.
  • Almacenamiento y actualización disponible.
11

Panel del plugin en WordPress

Configuración administrativa centralizada, sin colocar secretos dentro de Elementor.

Ubicación propuesta

WordPress
→ Ajustes
→ AdSystem360 Bridge

Configuración

URL_BASE_ADSYSTEM360
DOMINIO_WORDPRESS_AUTORIZADO
IDENTIFICADOR_DE_INTEGRACION
CLAVE_SECRETA
TIEMPO_DE_TOKEN
MODULOS_HABILITADOS
MODO_DEPURACION
ALTURA_PREDETERMINADA
PAGINA_DE_LOGIN
PAGINA_DE_ERROR
Las claves sensibles se almacenarán usando las capacidades seguras disponibles en WordPress y nunca aparecerán en el HTML, en Elementor ni en los shortcodes.
12

Seguridad

Autorización por origen, usuario, cliente, módulo y recurso solicitado.

  • HTTPS=SI
  • ALLOWLIST_DE_DOMINIOS=SI
  • TOKEN_CORTA_DURACION=SI
  • TOKEN_DE_UN_SOLO_USO=EVALUAR
  • NONCE=SI
  • SCOPES_POR_MODULO=SI
  • VALIDACION_DE_CLIENTE=SI
  • VALIDACION_DE_PANTALLA=SI
  • CSRF=SI
  • CSP_FRAME_ANCESTORS=SI
  • RATE_LIMIT=SI
  • AUDITORIA=SI
  • FAIL_CLOSED=SI

Ejemplo conceptual de alcance

scope=portal:pantallas:read
client=cliente_resuelto_internamente
expires=fecha_corta
origin=https://fireflyops360.com

Aunque alguien copiara una URL embebida, no debería funcionar fuera del origen autorizado ni después de expirar.

13

Comportamiento ante errores

Mensajes claros para el usuario, sin revelar información interna.

Mensajes permitidos

  • Debe iniciar sesión para consultar esta sección.
  • Su cuenta no está vinculada a un cliente de AdSystem360.
  • No tiene permiso para consultar este módulo.
  • AdSystem360 no se encuentra disponible temporalmente.
  • La sesión expiró. Actualice la página.
  • La pantalla solicitada no pertenece a su cuenta.

Información que nunca debe mostrarse

  • Tracebacks.
  • Consultas SQL.
  • Rutas /root o /opt.
  • Tokens, claves o variables de entorno.
  • Detalles internos de FastAPI.
14

Fases de construcción

Primero se inspecciona, después se diseña, luego se construyen candidatos y al final se instala con autorización.

FASE 0

Diagnóstico integral de solo lectura

Revisar WordPress, plugins, tema, Elementor, PHP, login, usuarios, roles, permalinks, headers, CSP, cookies y HTTPS.

Revisar en AdSystem360: main.py, ui_layout.py, _NAV, routers, Ficha Cliente, Ficha Pantalla, Catálogo, sesiones, permisos, tablas de usuarios/clientes y auditoría.

MATRIZ_RUTAS_REALES
MATRIZ_MODULOS
MATRIZ_PERMISOS
MATRIZ_USUARIOS
ARCHIVOS_QUE_SE_TOCARIAN
RIESGOS
ROLLBACK
FASE 1

Contrato de integración

Shortcode
Ruta real
Tipo de acceso
Permiso
Parámetros
Vista
Respuesta
Error
Auditoría
FASE 2

Candidato del plugin

Construir adsystem360-bridge-v0.1.0.zip sin tocar producción.

FASE 3

Candidato Python

Crear únicamente las adaptaciones necesarias para token, sesión portal, modo embed, validación de origen, resolución del cliente y auditoría.

FASE 4

Shortcode público

Primera prueba con

Cargando AdSystem360…
para validar comunicación básica sin identidad privada.

FASE 5

Shortcode privado

Segunda prueba con

para validar login, vinculación y aislamiento entre clientes.

FASE 6

Pantallas

⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

FASE 7

Área comercial

Planes, tarifas, precios especiales, excepciones, cotizaciones, contratos, órdenes, facturación y pagos.

FASE 8

Instalación controlada

BACKUP_WORDPRESS
BACKUP_PLUGIN
BACKUP_PYTHON
VALIDACION
INSTALACION
PRUEBAS
ROLLBACK
CHECKPOINT
15

Primera versión recomendada

Un alcance pequeño que pruebe contenido público, autenticación, aislamiento e interactividad.

VERSION=0.1.0

SHORTCODE_1=
Cargando AdSystem360…
ACCESO_1=PUBLICO SHORTCODE_2= ACCESO_2=CLIENTE_AUTENTICADO SHORTCODE_3=
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

ACCESO_3=CLIENTE_AUTENTICADO SHORTCODE_4=
⚠️

Módulo no disponible

Este módulo se encuentra deshabilitado.

ACCESO_4=CLIENTE_AUTENTICADO
Contenido público Autenticación Vinculación cliente Aislamiento de datos Ficha 360 Pantallas Interactividad Responsive Elementor
16

Validaciones obligatorias

Ninguna instalación se considera terminada hasta superar estas comprobaciones.

  • PLUGIN_INSTALA=OK
  • PLUGIN_ACTIVA=OK
  • WORDPRESS_SIN_ERROR_FATAL=OK
  • ELEMENTOR=OK
  • SHORTCODE_PUBLICO=OK
  • SHORTCODE_PRIVADO=OK
  • TOKEN_TEMPORAL=OK
  • TOKEN_EXPIRADO_RECHAZADO=OK
  • ORIGEN_NO_AUTORIZADO_RECHAZADO=OK
  • CLIENTE_A_NO_VE_CLIENTE_B=OK
  • PANTALLA_AJENA_RECHAZADA=OK
  • MENU_ADMIN_NO_VISIBLE=OK
  • RUTAS_INTERNAS_NO_VISIBLES=OK
  • MOVIL=OK
  • TABLETA=OK
  • ESCRITORIO=OK
  • ZOOM_200=OK
  • ADSystem360_ADMIN_INTACTO=OK
  • MARIADB_SIN_ACCESO_WORDPRESS=OK
  • ROLLBACK=OK
17

Entregables

Documentación, candidatos, validadores, instalación, rollback y evidencia final.

01_DIAGNOSTICO_WORDPRESS.txt
02_DIAGNOSTICO_ADSYSTEM360.txt
03_MATRIZ_MODULOS_SHORTCODES.csv
04_MATRIZ_PERMISOS.csv
05_CONTRATO_DE_INTEGRACION.md
06_ADSYSTEM360_BRIDGE_v0.1.0.zip
07_CANDIDATO_PYTHON/
08_VALIDACION_AUTOMATIZADA.sh
09_INSTALACION_CONTROLADA.sh
10_ROLLBACK.sh
11_MANUAL_ADMINISTRADOR.docx
12_MANUAL_USUARIO_CLIENTE.docx
13_CHECKPOINT_FINAL.txt
14_SHA256_DE_ENTREGABLES.txt
18

Criterio de éxito

Qué debe poder hacer el cliente y qué debe permanecer bloqueado.

El cliente podrá

  1. Entrar en fireflyops360.com.
  2. Iniciar sesión una sola vez.
  3. Abrir su cuenta.
  4. Consultar sus sucursales.
  5. Consultar sus pantallas.
  6. Abrir una pantalla.
  7. Ver campañas y programación.
  8. Utilizar el emulador.
  9. Consultar medios.
  10. Revisar tarifas y facturación.

El cliente no podrá

  • Ver otro cliente.
  • Cambiar identificadores para saltar permisos.
  • Acceder al administrador.
  • Consultar MariaDB.
  • Obtener rutas internas.
  • Modificar precios no autorizados.
  • Abrir módulos sin permiso.
  • Reutilizar enlaces vencidos.
19

Estado del proyecto

Separación clara entre lo existente, lo observado, lo propuesto y lo todavía no autorizado.

Elemento Estado
PROYECTOADSystem360_BRIDGE_WORDPRESS
WORDPRESS_EXISTENTE
ADSystem360_EXISTENTE
FICHA_CLIENTE_EXISTENTE
FICHA_PANTALLA_EXISTENTE
CATALOGO_COMERCIALEn desarrollo
PLAYER_ANDROID_MODULOExistente
PLUGIN_WORDPRESSPropuesto
RUTAS_PORTALNo verificadas
AUTENTICACION_COMPARTIDAPropuesta
CONEXION_DIRECTA_DBProhibida
IMPLEMENTACIONNo autorizada
PRODUCCION_MODIFICADANo
SIGUIENTE_FASEDIAGNOSTICO_INTEGRAL_DE_SOLO_LECTURA