Mockomat
Arquitectura

Un modelo que se escribe una vez.
Superficies que se mantienen sincronizadas.

Mockomat se construye alrededor de cuatro ideas. Juntas hacen que los datos simulados se sientan como una extensión de tu código, no como un proyecto secundario. Así es como piensa el sistema — y lo que te devuelve.

The pipeline

De entidades a dos superficies en vivo.

Tú describes entidades y atributos; Mockomat compila un esquema GraphQL tipado, vincula los atributos al pool de datos y sirve tanto un endpoint JSON como una vista previa renderizada a partir del mismo artefacto compilado.

DESIGN COMPILE SERVE CONSUME Your model User · email · fullName · avatarUrl Order · orderNo · total · status Compiler schema · types · resolvers pool ↔ field mappings seed plan DETERMINISTIC Runtime stateless · seedable resolver per type renderer per type seed = sha(...) POST /graphql application/json For your code, your CI, your AI agents GET /preview text/html For PMs, designers, stakeholders mockomat.pool 37 columns · 2.4M rows · public + per-tenant
Las cuatro ideas

Principios, no patrones.

No construimos Mockomat acumulando funcionalidades. Cada capacidad se deriva de uno de estos cuatro compromisos. Si los entiendes, puedes predecir cómo se comporta el resto del sistema.

01

Schema-first.

Tú diseñas el modelo. Mockomat lo compila.

Todo parte de tus entidades y atributos. Los datos simulados, el esquema GraphQL, la documentación, la vista previa renderizada — todo se deriva de una única fuente de verdad. Cambia el modelo y todo lo que depende de él se regenera.

seed
02

Reproducción determinista.

Misma semilla. Mismos datos. Siempre.

El motor de ejecución es sin estado y basado en semillas. Una solicitud a /graphql en cualquier momento se reproduce desde la misma semilla que tu equipo acordó — de modo que una instantánea hoy coincide con una instantánea en CI mañana. Sin fixtures inestables, sin desviaciones entre entornos.

03

Multi-tenant por defecto.

Espacios de trabajo, proyectos, roles, claves con alcance.

Cada cuenta es un límite de tenant. Dentro, los proyectos acotan esquemas; los roles acotan derechos de edición; las claves API acotan el acceso externo. La configuración está aislada por tenant desde el primer byte — nunca añadida después del hecho.

JSON UI
04

Dos superficies, un modelo.

Legible por máquinas para el código. Legible por personas para la revisión.

El mismo modelo sirve /graphql para tu aplicación y /preview para las partes interesadas. Los ingenieros consumen JSON; los diseñadores y los PM ven una tabla o lista renderizada de exactamente los mismos datos. Sin segunda fuente de verdad para las revisiones de producto.

Code generation

Exporta tu modelo como un proyecto real.

Cuando el prototipado termina y el despliegue comienza, tu esquema de Mockomat no queda atrapado en nuestro servicio. Un clic genera un cliente Angular completamente tipado y un scaffold de servidor NestJS — ambos conectados al mismo contrato GraphQL que ya validaste.

FRONTEND Angular 17 · standalone components · Apollo client
BACKEND NestJS 10 · GraphQL code-first · resolver stubs
SCHEMA GraphQL SDL · re-generated on each export
Mira un proyecto exportado
codegen.pipeline · deterministic · idempotent
schema.graphql
your model · 38 types · 142 fields
compile
frontend/ — Angular
typed queries · components
backend/ — NestJS
resolvers · DTOs · modules
MY-PROJECT.ZIP
📁 my-project/
📁 frontend/
📄 src/app/users/users.component.ts
📄 src/app/users/users.queries.ts ← typed Apollo queries
📄 src/app/graphql.types.ts
📁 backend/
📄 src/users/users.resolver.ts
📄 src/users/user.dto.ts
📄 src/users/users.module.ts
📄 schema.graphql ← single source of truth
📄 package.json
📄 README.md
Why determinism matters

Misma entrada.
Misma salida.
Siempre.

Los datos simulados con semillas aleatorias rompen tests, rompen revisiones y erosionan la confianza. El motor de ejecución de Mockomat vincula cada respuesta a la misma semilla que tu equipo eligió. Recupera un registro el mes que viene — misma estructura, mismos valores, mismas relaciones.

# request the same user, twice, three months apart
$ curl mockomat.app/p/abc/graphql -d '{ user(id:42) { email } }'
{ "data": { "user": { "email": "ada@bessemer.com" } } }
# 90 days later, same query…
$ curl mockomat.app/p/abc/graphql -d '{ user(id:42) { email } }'
{ "data": { "user": { "email": "ada@bessemer.com" } } }