Ir al artículo
Aniq-UI

NorthstackAdministración de la plataforma

Administración de la plataforma

Qué ve el personal de la plataforma en todos los espacios de trabajo: los ingresos recurrentes y su exportación, las organizaciones con suspender y reactivar, los usuarios y su restauración, el personal, los roles de plataforma y los ajustes de plataforma, y qué pueden hacer Platform admin y Support.

Para el paquete Full Stack

Quién la usa

  • La administración de la plataforma es para quienes gestionan el producto, no para los miembros de un espacio de trabajo. Una cuenta es personal de la plataforma cuando tiene un rol de plataforma; los roles de espacio de trabajo no tienen nada que ver.
  • Se abre en el mismo panel, en su propia columna de la barra lateral. Una cuenta con un permiso de plataforma y un espacio de trabajo ve Platform admin al pie de la barra lateral del espacio y Return to workspace en la de la plataforma. El personal sin espacio de trabajo llega al resumen de la plataforma tras iniciar sesión.
  • Cada ruta de la plataforma comprueba en el servidor los permisos de plataforma de la cuenta, sea lo que sea que muestre la pantalla. Una página abierta sin ellos dice "Platform administration is open to platform staff only."

Páginas

Elemento de la barra lateralRutaPermisoQué hace
Resumen/en/adminplatform.viewLos ingresos recurrentes, la mezcla de planes, la tendencia de ingresos y las últimas organizaciones, con Export report.
Organizaciones/en/admin/organizationsorganizations.viewCada espacio de trabajo de la plataforma con su plan, puestos y estado; el detalle de cada uno; suspender y reactivar.
Usuarios/en/dashboard/users/allusers.viewCada cuenta y los espacios de trabajo a los que pertenece, con las cuentas eliminadas bajo Deleted.
Personal/en/dashboard/admins-managementadmins.viewLas cuentas que tienen un rol de plataforma, y sus roles.
Roles/en/dashboard/admins-rolesroles.viewQué puede hacer cada rol de plataforma.
Ajustes/en/admin/settingssettings.viewAjustes de toda la plataforma.

La búsqueda de la barra superior encuentra aquí organizaciones.

Platform admin y Support

RolCuenta de la carga inicialPermisos
Platform adminplatform@northstack.example (Riley Brooks)Los 21: todas las páginas y todas las acciones de abajo
Supportsupport@northstack.example (Dana Quinn)platform.view, reports.export, organizations.view, users.view, admins.view, roles.view, settings.view: todas las páginas de la plataforma en solo lectura, y la exportación de informes

Ninguna de las dos cuentas pertenece a un espacio de trabajo. yarn seed vuelve a dejar ambos roles exactamente en estas listas cada vez que se ejecuta, así que un cambio que les hayas hecho en la página Roles lo deshace la siguiente carga de datos; los roles que creas tú se dejan como están. La guía de instalación lista sus datos de acceso.

El resumen de la plataforma

  • Monthly recurring revenue: cada espacio de trabajo de pago (activo, con pago vencido o terminando) al precio mensual de su plan, con el número de espacios de pago, pruebas y las cuentas con pago vencido con un enlace a ellas.
  • Plan distribution: cuántos espacios de trabajo de pago están en Starter, Pro y Scale.
  • MRR trend: un punto por mes. El Report range (Last 30 days, Last 90 days, Last 6 months o Last 12 months, 6 meses por defecto) fija cuántos meses muestra. Los meses pasados vienen de la tabla mrr_snapshots, y el mes actual se calcula a partir de los espacios de trabajo tal como están ahora. Solo la carga de datos escribe los meses pasados: nada registra la cifra de un mes al cerrarse, así que en una instalación real la tendencia solo crece si tu propio proceso guarda una fila por mes.
  • Organizations: las más recientes, con filtros de plan y estado y las mismas acciones que la página Organizations.
  • Export report (reports.export) descarga northstack-organizations.csv: cada organización con organization, id, plan, status, seats, mrr_usd y created.

Los datos de ejemplo crean 732 organizaciones para que las cifras cuadren: 690 de pago (480 en Starter, 120 en Pro y 90 en Scale), 6 de ellas con pago vencido, y 42 pruebas, con cinco meses pasados de ingresos, así que la tendencia muestra como máximo seis puntos en una carga nueva.

Organizaciones

  • La lista busca en nombres y direcciones y filtra por Plan y Status (Trial, Active, Past due, Ending, Canceled, Suspended), diez por página, el actualizado más recientemente primero.
  • La página de una organización muestra su propietario, plan, estado, puestos, región, dirección, correo de facturación y fecha de renovación, sus solicitudes de API y almacenamiento, sus miembros con sus roles, sus últimas doce facturas, su historial de suscripción y sus eventos de plataforma.
  • Suspend (organizations.manage) pide un motivo y se escribe en los eventos de plataforma de la organización. Un espacio de trabajo suspendido conserva toda lectura: sus miembros siguen iniciando sesión y viendo sus datos, y todo cambio que intentan se rechaza con workspace_suspended.
  • Reactivate lo devuelve a Active, o a Past due cuando tenía una factura sin pagar, y se borra el motivo.

Usuarios

  • All users lista cada cuenta con sus espacios de trabajo y roles, su rol de plataforma y cuándo se unió, diez por página. Role filtra por Workspace owner, Workspace admin, Workspace member, Billing, Platform staff o No workspace.
  • Create user (users.create) crea una cuenta con un nombre, un correo y una contraseña de al menos 8 caracteres; no se envía nada por correo, así que comparte los datos de forma segura. La cuenta no tiene espacio de trabajo hasta que crea uno o acepta una invitación.
  • Edit y Change password requieren users.update. Una contraseña o un correo nuevos para una cuenta que tiene un permiso de plataforma que quien llama no tiene se rechazan con un 403, "This account holds platform permissions you do not have, so only a Platform admin can change its password or email." Un Platform admin puede cambiar cualquier cuenta, y el correo está protegido porque un restablecimiento de contraseña se envía a él.
  • Delete (users.delete) mueve la cuenta a Deleted: ya no puede iniciar sesión. Una cuenta que es propietaria de un espacio de trabajo no se puede eliminar hasta que otro miembro pase a ser propietario de ese espacio.
  • Restore (users.restore) devuelve una cuenta eliminada con sus antiguas membresías. Los datos de ejemplo incluyen una cuenta eliminada para probarlo.

Personal

  • Add staff (admins.create) crea una cuenta con un nombre, un correo, una contraseña escrita dos veces y sus roles de plataforma.
  • Edit cambia los datos (admins.edit), con la misma protección sobre la contraseña y el correo de otra cuenta que en Users. Platform roles cambia los roles (admins.assign_roles); sin ninguno, la persona sale de la lista de personal y conserva su cuenta. Un rol que tiene un permiso de plataforma que quien llama no tiene no se puede conceder ni quitar: "This role holds platform permissions you do not have, so you cannot grant it or take it away."
  • Remove (admins.delete) elimina la cuenta y su acceso a la plataforma; se puede restaurar desde Users, Deleted.
  • La página de un miembro del personal lista los permisos que le conceden sus roles.

Roles de plataforma y sus permisos

/en/dashboard/admins-roles muestra cada rol de plataforma como una columna y cada permiso como una fila, en seis grupos. Create role (roles.create) añade un rol sin permisos; Rename (roles.edit) y Delete (roles.delete) están en el menú de cada columna; marcar celdas y Save changes requiere roles.assign_permissions, y la API guarda solo permisos que quien llama tiene él mismo, en un rol que no tiene ninguno que quien llama no tenga: "You can only give a role permissions you hold yourself, and only change a role that holds no permission you lack." Así nadie eleva su propio rol, ni uno por encima del suyo. La API se niega a eliminar un rol que alguien aún tiene. El panel mantiene bloqueada la columna Platform admin con todos los permisos, de modo que la plataforma siempre tiene a alguien que pueda gestionarla.

GrupoPermisos
Resumen e informesplatform.view, reports.export
Organizacionesorganizations.view, organizations.manage
Usuariosusers.view, users.create, users.update, users.delete, users.restore
Personaladmins.view, admins.create, admins.edit, admins.delete, admins.assign_roles
Rolesroles.view, roles.create, roles.edit, roles.delete, roles.assign_permissions
Ajustessettings.view, settings.edit

La lista se define en back-end/src/database/seeders/platform-access.seeder.ts; la carga de datos añade los nombres nuevos y elimina los que ya no lista. Un cambio en los permisos de un rol, o en los roles de plataforma de alguien, llega al instante a un miembro del personal con sesión iniciada con el aviso "Your permissions have been updated".

Ajustes de la plataforma

/en/admin/settings lista los ajustes de la plataforma por categoría, con una búsqueda. Cada valor se edita en el lugar, o el ajuste se elimina, con settings.edit; settings.view los lee.

AjusteClaveValor inicial
Product namesite_nameNorthstack
Taglinesite_taglineB2B SaaS starter
Support addresssupport_emailuna dirección example
Notification sendernotification_emailuna dirección example
Maintenance modemaintenance_modedesactivado
New sign-upssignups_enabledactivado
Trial length (days)trial_days14
  • New sign-ups desactivado rechaza el registro del panel y la creación de un espacio de trabajo nuevo en el alta inicial con un 403, "New sign-ups are closed on this platform right now." Las cuentas existentes siguen iniciando sesión y aceptando invitaciones, y el personal aún puede crear cuentas en la página Users.
  • Trial length (days) es cuánto prueba cada espacio de trabajo nuevo, a partir del siguiente que se cree. Un valor que no sea un número entero de días mayor que cero cuenta como 14.
  • Maintenance mode activado cierra el producto a todos salvo al personal de la plataforma (las cuentas con platform.view, Platform admin y Support tal como se cargan). Todos los demás ven la pantalla de mantenimiento del panel, "Closed for maintenance.", que vuelve a comprobar por sí sola, y la API responde a sus peticiones con un 503. El personal inicia sesión como de costumbre y ve "Maintenance mode is on" con un enlace a estos ajustes. El formulario de contacto y el pago de licencias del sitio web, el webhook de Stripe y la comprobación de estado siguen abiertos.
  • El asistente de IA lee el nombre del producto, la dirección de soporte y el modo de mantenimiento para sus respuestas. El eslogan y el remitente de notificaciones se guardan y se muestran aquí para que los lea tu propio código: la API no envía correo con ellos.
  • Cada cambio se aplica a la siguiente petición. yarn seed vuelve a dejar estos siete en sus valores de carga, así que un cambio hecho aquí lo deshace la siguiente carga de datos, y elimina cualquier otro ajuste.

Las rutas detrás de estas páginas

RutaPermiso
GET /api/platform/overview?range=30d|90d|6m|12mplatform.view
GET /api/platform/overview/exportreports.export
GET /api/platform/organizations (search, plan, status, page, limit hasta 100), GET /api/platform/organizations/:idorganizations.view
POST /api/platform/organizations/:id/suspend (reason), POST /api/platform/organizations/:id/reactivateorganizations.manage
GET /api/users, GET /api/users/deleted, GET /api/users/:usernameusers.view
POST /api/users; PATCH /api/users/:username, PATCH /api/users/:username/change-password; DELETE /api/users/:username; POST /api/users/deleted/:username/restoreusers.create; users.update; users.delete; users.restore
/api/admins/*admins.*
/api/roles/*roles.*
GET /api/settings; PATCH y DELETE /api/settings/:keysettings.view; settings.edit

Cómo llega un cambio al personal con sesión iniciada

Incluido con tu compra. Inicia sesión para leerlo o ábrelo en tu descarga.

La conexión en vivo que envía un cambio de rol de plataforma al personal con sesión iniciada.

¿Te atascaste en un paso?

Busca una solución antes de empezar de nuevo.

Solución de problemas

Preferencias de Cookies

Utilizamos cookies para mejorar tu experiencia de navegación, analizar el tráfico del sitio y personalizar el contenido. Al hacer clic en "Aceptar Todo", consientes nuestro uso de cookies para análisis y publicidad personalizada.