WorldOS·docsVerificando acceso…WorldOS·systemModo oscuroWorldOS/NodeCore/documentación de arquitectura
Un sistema operativo en la nube, y elmotorque lo vuelve posible
WorldOS es un sistema operativo en la nube para organizaciones. NodeCore es su motor de datos: una sola tecnología que le permite a cualquier organización conectarse con cualquier API — las que existen y las que van a existir. Esta es la documentación de cómo funciona por dentro.servicio contra servicioO(n²)normalizarcontra un coretodo contra el coreO(1)Integrar servicios punto a punto crece O(n²); normalizar todo contra un core único lo vuelve O(1) — y mejorando una cosa, mejora todo.Esta es la documentación interna de la arquitectura — para nosotros, y para explicársela a alguien más. Bajá scrolleando, o saltá con el menú de la izquierda: primero el átomo de NoMA, después la arquitectura (drivers, motor), y al final los flujos.1el átomo
Todo es un nodo, unido por interfaces
NodeCore está basado en NoMA: la información son fichas (nodos) unidas por flechas con nombre (interfaces). Dos nodos unidos por una interfaz forman una regla — y eso es todo lo que existe. No hay clases, campos ni métodos: un usuario, una empresa, una credencial son fichas conectadas.Auto01<Superset>"es un"AutoAuto01Color"tiene el color"Rojocada línea es una regla ·Auto01 es un Auto·Auto01 tiene el color Rojo<Superset>es un / es tipo de.X <Superset> Y= "X es un Y".<Slot>tiene un campo. Le cuelga a un nodo un dato con nombre.<Subset>vale / toma como valor. El caso concreto de un campo.<Match> · <Set>buscar · asignar. El contrato, más abajo.2la conexión
NodeDrivers: conectarse con cualquier API
Un NodeDriver controla un universo y lo sincroniza con un sistema externo en las dos direcciones. Cuando el otro universo es NoMA-native, el link es directo. Cuando no lo es — Facebook, Google, Stripe — se interpone un traductor: un driver que mapea esa API a nodos. Conectar cualquier API se reduce a escribir su traductor; el universo de la organización queda uniforme.Universo de la orgsus nodoslink directoNoMA-nativeOtro universo NoMAhabla el protocoloUniverso de la orgsus nodoslinkTraductorNodeDriver que bridgeabridgeFacebookAPI no-nativeel traductor traduce en las dos direcciones — la API ajena se ve, adentro, como nodos3el motor
NodeCore: driver y coordinador a la vez
Cada organización tiene su propio universo, con links a otros universos. NodeCore es las dos cosas al mismo tiempo: un driver más, y el coordinador de todos los drivers. Su trabajo es orquestarlos — y eso incluye poner la credencial adecuada en el momento justo, cuando un driver necesita actuar hacia afuera en nombre de una organización.Organización Asu universo · sus linksOrganización Bsu universo · sus linkscoordinaNodeCoredriver + coordinador · maneja credencialesUniverso NoMA-nativedirectodriversque NodeCore coordinatraductorAPI externaagregar una organización, un driver o una autorización = la misma acción NoMA sobre el core4el contrato
Una sola puerta: buscar y asignar
No hay comandos por recurso. Hay una operación:<Match>encuentra nodos y, si querés cambiar algo, le sumás un<Set>que asigna — todo dentro de un<Action>atómico. Y acá está la clave del sistema: dar de alta un driver, una organización, o pedir una autorización son todas la misma acción NoMA.<Action>el pedido — atómico<Match>+<Set>buscar + asignarResponseResult · Require · Error · Continue<Match>solo → lee<Match>con<Set>→ escribela única diferencia entre leer y escribir es si hay un<Set>o nopor qué importaMismos contratos para todo: por eso el sistema no crece en superficie. Agregar una capacidad no agrega una API nueva que mantener — agrega nodos, bajo el mismo contrato.5los permisos
El mismo sistema de permisos para todo
La autorización es granular por construcción: un permiso no es un rol, es un nodo con una de cuatro formas. Dos validan tu pedido (sin tocar nada); dos lo reescriben antes de ejecutarlo. El mismo mecanismo gobierna cada acción del sistema.validan — ¿podés pedir esto?AuthMatchrecorta qué podés mirar.AuthMatch: { Carpeta:Facturas}AuthSetrecorta qué podés escribir.AuthSet: { Tipo:PDF}reescriben — te lo ajustan solosMatchApplyfuerza dónde se busca.MatchApply: { Carpeta:Facturas}SetApplyestampa un valor en todo lo que escribís.SetApply: { SubidoPor:Sistema}crear un permiso es escribir su nodo con un<Set>— el mismo contrato, sin ningún "CREATE"6las credenciales
Conectar una cuenta: el flujo
Obtener el permiso de un tercero es el flujo estándar de OAuth 2.0, coordinado por NodeCore como una faceta más de su manejo de drivers. La llave (el token) solo viaja servidor-a-servidor; nunca pasa por tu navegador.OrganizaciónnavegadorWorldOSNodeCoreAPI externaGoogle · etc.org→WorldOS"Conectar mi cuenta de Google".WorldOS→APIpide autorización (client_id, scope), vía navegador.API↔orgte autenticás y das consentimiento, en el sitio del tercero.API→WorldOSdevuelve un código de un solo uso (vía navegador).WorldOS→APIcanjea el código por la llave — servidor a servidor, con el client_secret.NodeCoreguarda la llave y la usa cuando un driver la necesita — refresco transparente al vencer.la llave viaja solo por los pasos servidor-a-servidor · por el navegador va solo el código de un solo usoen diseñoLa credencial retenida es un nodo especial: su valor no "vive" en el universo, es el reflejo de un token externo que un driver mantiene sincronizado. Cómo se nombra ese nodo en NoMA es la decisión de spec que estamos resolviendo ahora.7el recorrido
El viaje de una Action, de punta a punta
Todo lo anterior se junta acá: cómo una consulta atraviesa el sistema. Pasa por dos instancias separadas por el INGRESS POINT — antes de él, el pedido se limpia y gana identidad; después, NodeCore lo ubica y ejecuta. Y es re-entrante: si la ejecución necesita algo de otro universo, vuelve a empezar por el INGRESS.en diseñoHay dos momentos de credencial: AuthCore (paso 3) resuelve la identidad del usuario que entra; GetAuth (paso 5) consigue la credencial del universo destino — la que el vault retiene. Cómo la credencial cruda se transforma en identidad-nodo sin cruzar el INGRESS es el GAP que estamos resolviendo.Documentación interna · WorldOS / NodeCore / NoMA · fuente del diseño: core.worldos.app.