Skip to content

PointSav Documentation

The engineering library for the PointSav platform — operating systems and services for regulated businesses that own their data, their AI, and their record-keeping outright. Where the monorepo holds the code, this wiki holds the reasoning: architecture, services, security, and the governance commitments that bind future development.

Personal y permisos

Un nivel de permisos es un grado de autoridad con nombre asignado a un colaborador, que determina en qué archivos de trabajo puede trabajar y qué operaciones privilegiadas puede ejecutar. Esta plataforma define cuatro — de P1 a P4 — implementados como una enumeración tipada en el componente de mando de orquestación, servidos a través de un endpoint HTTP y derivados de un archivo de configuración del espacio de trabajo, no de una base de datos de usuarios.

La decisión de diseño que conviene notar es a qué está atado el nivel. No hay tabla de cuentas, ni asignación de roles por servicio, ni pertenencia a grupos. La autoridad de un colaborador está pensada como una propiedad de un archivo de configuración que describe con qué archivos de trabajo está emparejado, y el nivel se deriva de ese emparejamiento — el permiso como consecuencia del emparejamiento y no como una concesión aparte. Ese diseño es código real hoy; si actualmente gobierna a alguien es una cuestión distinta, que este artículo responde con precisión más abajo.

Los cuatro niveles

La enumeración es tipada y no una cadena libre, y sus variantes llevan documentación que enuncia directamente el alcance de cada nivel:

  • P1 — System Administrator (administrador del sistema). Acceso completo al espacio de trabajo.
  • P2 — Package Manager (gestor de paquetes). Archivos de trabajo concretos, más la autoridad para ejecutar el paso de promoción canónica.
  • P3 — User (usuario). Solo archivos de trabajo concretos; sin emparejamiento en la capa de mando.
  • P4 — Interface (interfaz). Solo superficie de API de lectura.

El orden es una jerarquía real de radio de impacto, no de antigüedad. La frontera significativa está entre P2 y P3: P2 puede mover trabajo al repositorio canónico, que es el punto en el que un cambio se vuelve visible desde fuera e irreversible en la práctica. P3 puede hacer commit libremente dentro de sus propios archivos de trabajo, sin ese alcance. P4 no puede escribir en absoluto.

Cómo se resuelve un nivel

La ruta de resolución es corta y está gobernada íntegramente por un archivo.

Un módulo de personal lee un archivo de configuración del espacio de trabajo — el mismo archivo que declara qué archivos de trabajo existen y cómo están organizados — buscando una clave contributors de primer nivel. Cada entrada ahí aportaría un nombre de usuario del sistema operativo, una cadena de nivel y una lista de archivos de trabajo emparejados. El módulo convierte esa forma en bruto en un registro interno de tres campos y convierte la cadena de nivel en la enumeración tipada; un nivel no reconocido o ausente cae de vuelta a P3, el más restrictivo de los dos niveles acotados a archivos de trabajo.

Una única ruta, GET /v1/personnel/{user}, devuelve el registro resultante como JSON o un error de no encontrado. Ese endpoint es la respuesta prevista de la plataforma a la pregunta «qué se le permite hacer a este colaborador».

El registro son tres campos

El registro lleva un nombre de usuario del sistema operativo, un nivel y el conjunto de archivos de trabajo emparejados. Eso es todo. No lleva un nombre para mostrar, ni una cadena de rol, ni una clave pública SSH. El material de clave se gestiona por separado en el almacén de identidades del espacio de trabajo, donde cada identidad tiene su propio directorio y su clave de firma con permisos restrictivos. Describir un único registro de personal unificado que contuviera nombre, rol, clave y nivel a la vez tergiversaría el modelo de datos: el almacén de identidades y el registro de nivel son sistemas separados, unidos únicamente por la convención del nombre de usuario.

Hoy el archivo de configuración no declara ningún colaborador

La clave contributors es opcional para el analizador, de modo que un archivo que carezca de ella por completo se carga igualmente sin error y produce un conjunto vacío de colaboradores. El archivo de configuración real del espacio de trabajo contiene una lista de entradas de topología de archivos de trabajo (nombre del clúster, ID de módulo, rama, nivel de autoservicio) y no lleva ninguna clave contributors: en ninguna parte.

La consecuencia es exacta y merece enunciarse sin eufemismos: hoy el endpoint de personal devolvería no encontrado para todo usuario real. Ningún colaborador tiene actualmente un nivel resuelto por esta vía. La enumeración, el analizador, el endpoint y su comportamiento de reserva son todos reales y están construidos — pero los datos que darían a todo ello un efecto práctico para un operador real no se han poblado en el archivo que lee. Es un caso de código construido y correcto situado frente a datos sin poblar, no un caso de una funcionalidad ficticia — una distinción que importa a cualquiera que evalúe la postura de control de acceso de esta plataforma, porque la descripción honesta no es ni «no implementado» ni «gobierna hoy el acceso por completo».

Cabe señalar una advertencia junto a lo anterior. El modelo P1–P4 es código real y construido — no una propuesta, no una descripción de intención. Quien evalúe la postura de control de acceso de esta plataforma debería tratar «el sistema de niveles existe pero aún no tiene datos detrás» como la descripción correcta, no «el sistema de niveles no existe».

Por qué un archivo de configuración y no una base de datos

La decisión de derivar la autoridad de un archivo de configuración versionado en lugar de una tabla de usuarios tiene consecuencias en ambos sentidos, y conviene nombrarlas.

A su favor: el archivo está bajo control de versiones, de modo que un cambio de autoridad es un commit con autor, marca de tiempo y firma, revisable en el historial como cualquier otro cambio. No hay una interfaz administrativa aparte que asegurar, ni sesión que secuestrar, ni ruta de escritura en vivo por la que un nivel pudiera escalarse en tiempo de ejecución. El mismo archivo lleva además la topología de archivos de trabajo y las concesiones de autoservicio por archivo, de modo que la descripción de quién puede trabajar dónde y la descripción de qué puede hacer cada archivo de trabajo residen en un único lugar auditable.

En su contra: el archivo es el control entero. Cualquiera capaz de hacer commit de un cambio en él, y de llevar ese cambio a la máquina que sirve el endpoint, cambia la respuesta. No hay segundo factor ni paso de aprobación específico para los cambios de autoridad — la protección es el mismo control de commit y de promoción que protege cualquier otro archivo, descrito en la cadena de suministro de cinco etapas. El comportamiento de reserva del analizador se eligió con eso en mente: un nivel no reconocido o ausente se resuelve como P3, de modo que una entrada malformada concede menos, no más.

Qué gobierna realmente el acceso hoy

Dado que el endpoint de niveles no tiene datos detrás, conviene ser explícito sobre qué sí acota en la práctica la autoridad de los colaboradores, porque la respuesta no es este componente.

La autoridad la imponen los mecanismos descritos en la cadena de suministro de cinco etapas y en la defensa en profundidad previa al commit: la posesión de la clave de acceso del remoto canónico, que solo tiene una sesión privilegiada; una comprobación de alcance dentro del script de promoción que confirma que la sesión tiene derecho a promover; un permiso de autoservicio registrado por archivo de trabajo en el mismo archivo de configuración, que determina si un archivo puede empujar su propia rama a los espejos de staging; y una comprobación del mensaje de commit que restringe la identidad del autor. Estos son controles reales y activos. El modelo de niveles es la descripción declarativa de esa misma intención, hoy por delante de sus datos.

Lo que esto no es

Ningún colaborador tiene hoy un nivel asignado por esta vía. El archivo de configuración no declara colaboradores, de modo que el endpoint no resuelve nada. La implementación existe; la población de datos, no.

Un registro de personal no es un registro de identidad. Contiene un nombre de usuario, un nivel y los archivos de trabajo emparejados. Los nombres, los roles y las claves viven en otro sitio, y ningún código los une en un solo objeto.

Los niveles no los impone el componente de niveles. La enumeración y el endpoint describen autoridad; no acotan ninguna operación. El rechazo ocurre en el script de promoción, en los hooks de commit y en quién tiene cada clave de acceso.

Este no es el sistema de emparejamiento descrito en la autorización basada en máquina. Aquel componente vincula una clave de dispositivo a un registro de usuario y lleva una cadena de rol sin restricciones con un valor por defecto codificado. Es un componente distinto, un modelo de datos distinto, y no un nivel P1–P4. En el componente de orquestación existe además un rol de emparejamiento de tres valores — usuario, administrador, interfaz — que tampoco es esta enumeración.

Un nivel no es una cuenta. No hay inicio de sesión, ni sesión, ni credencial asociada a él. Es una declaración leída de un archivo, y su integridad depende enteramente de la integridad de ese archivo y del proceso que lo edita.

Véase también

Cite this record: /wiki/personnel-permissions — revision 78f99948, last updated 22 August 2026.

Important Information

Estructura corporativa. PointSav Digital Systems ("PointSav") es actualmente un nombre comercial de Woodfine Capital Projects Inc. ("Woodfine"), con previsión de convertirse en una subsidiaria de propiedad absoluta de Woodfine tras su incorporación. PointSav no ofrece, vende ni solicita por sí mismo valor alguno. Toda oferta de valores asociada a las soluciones inmobiliarias de tenencia directa de Woodfine se realiza exclusivamente por parte de Woodfine, y únicamente por medio del Memorando de Colocación Privada aplicable.

Sin asesoramiento de inversión. El contenido de este wiki se ofrece con fines de ingeniería, operativos, de investigación y de desarrollo. Nada de lo que figura en este wiki constituye asesoramiento de inversión ni una solicitud para invertir en ninguna sociedad o solución de tenencia directa de Woodfine.

Propiedad intelectual. El nombre, el nombre comercial, el logotipo y las marcas de PointSav, junto con todos los productos, servicios y ofertas actuales y futuros de las marcas PointSav y Totebox — así como el software, el código fuente, la documentación, el sistema de diseño y todos los materiales relacionados — son propiedad de Woodfine y sus filiales, salvo los componentes identificados como de código abierto. No se otorga ningún derecho salvo el expresamente establecido en una licencia o acuerdo por escrito. El aviso de marcas completo aparece en el pie de página de cada página de este sitio.

Componentes de código abierto. Algunas partes de la plataforma se ofrecen bajo licencias de código abierto permisivas identificadas en el repositorio correspondiente. El uso de esos componentes se rige por los términos de sus respectivas licencias.

Sin garantía; uso informativo. El contenido de este wiki se ofrece únicamente con fines informativos generales y no constituye una declaración, garantía ni compromiso respecto de la funcionalidad, disponibilidad, precio o hoja de ruta de ningún producto. Algunos artículos describen características, capacidades e hitos planificados o previstos — el lenguaje como "planificado", "previsto", "objetivo", "puede" y "esperado" marca este contenido prospectivo, que está sujeto a cambios y no constituye un compromiso respecto del rendimiento futuro.

Confidencialidad. Cuando un artículo describiría un detalle operativo o de implementación no destinado a divulgación pública, ese artículo no se publica en este wiki. El contenido aquí es documentación de ingeniería de uso general, no configuración específica de clientes.

Jurisdicción. Woodfine Capital Projects Inc. está constituida en Columbia Británica, Canadá. Las referencias a la Sovereign Data Foundation en este wiki describen una iniciativa planificada o prevista únicamente, no una titular de capital actual ni un órgano de gobierno activo.

Cambios a este aviso. PointSav podrá actualizar este aviso periódicamente; rige la versión publicada en esta página.

No es un sistema de presentación de documentos. Este wiki no es un sistema de presentación de valores, un repositorio de divulgación electrónica ni un sustituto de SEDAR+ ni de ningún otro sistema de presentación regulatorio. Las presentaciones formales de valores se realizan a través del sistema de presentación regulatorio correspondiente, no a través de este wiki.

Descargo completo. Este aviso complementa, y no sustituye, el artículo completo de Avisos Legales. En caso de cualquier conflicto, prevalece el artículo de Avisos Legales.

Read the full disclaimer →