Consola de administración

Páginas y operaciones de la consola de administración

Conoce cada página de administración incluida y las reglas de seguridad para facturación, moderación y escrituras.

Sincronizado con el commit 2a1a04a del starter.

Empieza por la pregunta operativa, no por el menú: “¿Qué workspace posee este cobro?”, “¿Por qué no se concedieron créditos?”, “¿Debemos suspender esta cuenta?” o “¿Quién cambió este límite?”. La consola reúne evidencia del lado de la aplicación, pero no sustituye Stripe, analytics ni soporte.

Elige la herramienta más segura

  • Inspecciona primero. Usa /users para identificar la cuenta exacta y /organizations para tenancy, plan, créditos y cobros.
  • Usa admin_ro para soporte e investigación. Escala a un operador admin_rw solo cuando haga falta una escritura documentada.
  • Tras corregir la causa usa Resend en Stripe; usa Resolve solo si alguien resolvió el caso fuera del sistema y quiere cerrar el evento de forma terminal.
  • Suspende para cortar acceso durante abuso; usa el ciclo de vida de cuenta para un borrado solicitado. Conservan datos distintos por motivos distintos.

La operación termina cuando: se verificó cuenta/organización, se eligió la acción menos potente, se comprobó el resultado en la fuente de verdad y cada escritura tiene una entrada clara en /audit.

La consola es un espacio de operaciones, no un sustituto de la analítica del producto. Su resumen destaca condiciones que cambian la siguiente acción del operador: registros recientes, suscripciones activas y vencidas, cuentas suspendidas y eventos de Stripe que esperan una decisión. Los ingresos, la conversión y el abandono siguen correspondiendo a Stripe o a tu herramienta de analítica.

Espacio de trabajo

  • / muestra métricas operativas, cuentas y pedidos recientes, colas pendientes y herramientas para conceder planes y créditos manualmente. Las concesiones dirigidas a un usuario se aplican a su organización personal.
  • /users busca por correo, UUID o alias e identifica la cuenta exacta asociada al proveedor. Un correo puede tener varias filas de cuenta, por lo que no es una clave de autorización.
  • /organizations busca por nombre, slug, UUID o ID de cliente de Stripe. La organización es el tenant propietario de créditos agrupados, planes, suscripciones y cliente de Stripe. Su detalle muestra identidad, miembros, plan resuelto, historial de suscripciones, libro de créditos, pedidos y límites de plazas personalizados.

La diferencia entre cuenta y organización es esencial en soporte: usa /users para identificar a la persona y después /organizations para investigar el espacio donde viven la facturación y los permisos de producto.

Ingresos

  • /orders filtra y busca por número de pedido, suscripción, organización, UUID de usuario o correo. La columna de cumplimiento compara los créditos prometidos por un pedido pagado con las entradas del libro, haciendo visible una concesión ausente o duplicada.
  • /stripe-events muestra entregas de webhook y su estado sin exponer la carga útil original de Stripe. Para un evento aparcado, corrige la causa y usa Resend en Stripe para ejecutarlo de nuevo contra el estado actual del proveedor. Resolve registra que un operador lo solucionó fuera del sistema y exige una nota; la resolución es terminal y no es una repetición.
  • /reconciliation ejecuta la mitad local de la conciliación durante una ventana de 7, 30 o 90 días. Detecta pedidos pagados sin créditos, desviaciones de saldo del libro y webhooks atascados. No puede descubrir un cargo de Stripe que nunca llegó a la aplicación; usa pnpm reconcile:stripe para comparar con el proveedor.

Operaciones del producto

  • /reservations muestra número de reserva, servicio, usuario, hora, zona horaria y estado. Si las reservas están desactivadas en la configuración, la página lo indica sin consultar una función inactiva.
  • /feedbacks muestra la valoración, el contenido, el estado, la identidad y la fecha del comentario.
  • /affiliates muestra usuario referido, invitador, estado, pedido válido, importe pagado y recompensa.

Estas son superficies de inspección de la versión publicada. No inventan estados de proceso ni controles de edición que los servicios del producto todavía no implementan.

Confianza y seguridad

  • /moderation suspende o restaura cuentas y administra reglas de bloqueo por correo exacto o dominio. La suspensión revoca sesiones activas y bloquea el acceso, pero conserva el usuario, el libro, los archivos y las organizaciones. No es un borrado de cuenta.
  • /audit es el historial paginado de escrituras administrativas, con actor, rol, acción, objetivo, estado, nota, contexto de red y metadatos.

Por defecto, una suspensión abarca todas las filas de cuenta que comparten la dirección y añade una regla de bloqueo, lo que impide eludirla mediante una nueva cuenta OAuth. La comparación normaliza los sufijos con signo más y los puntos de Gmail; las reglas de dominio sirven para oleadas de correo desechable.

Protecciones de escritura

Las herramientas de escritura incluidas se limitan a conceder créditos, conceder y revocar planes gratuitos, personalizar o restablecer el límite de plazas, suspender y restaurar cuentas, cambiar el bloqueo y resolver de forma terminal eventos de Stripe.

Todas las rutas de escritura incluidas exigen admin_rw, validan solicitudes del mismo origen y llaman al registro de auditoría. Las concesiones de créditos exigen una clave de idempotencia y generan un número de transacción único y determinista, así que reintentar la misma operación no concede dos veces. Los planes y créditos manuales no caducan por defecto; los vencimientos opcionales de 7, 30, 90 días o personalizados deben estar en el futuro.

La consola no incluye deliberadamente un botón para reproducir una carga de webhook de Stripe guardada. Corrige la causa y utiliza Resend en Stripe. Tampoco convierte una suspensión en borrado: la exportación y eliminación solicitadas por el usuario siguen el ciclo de vida de datos de la cuenta.

Consulta Configuración y acceso a la consola y completa Despliegue y seguridad antes de exponer la aplicación fuera del desarrollo local.

Recuperación de jobs durables

/jobs muestra estado, intentos, edad, sujetos y errores seguros sin exponer payload JSON ni claves. Un operador de escritura puede reintentar un job idempotente fallido o cancelar una notificación pendiente no reclamada con nota auditada. No se cancela trabajo en ejecución porque el proveedor puede haber actuado. Créditos, storage, lifecycle y campañas se recuperan desde su workflow propietario.

Páginas y operaciones de la consola de administración · Sushi SaaS