Praxsuite

Esquema

Vincent Depassier · 17 de septiembre de 2026

La forma de un workspace no queda fija al desplegar: alguien puede agregar una tabla o renombrar una columna mientras tu aplicación está corriendo. Estas rutas son la manera de que un cliente descubra esa forma en vez de tenerla escrita a mano.

Auth: API key (sk_live_ o pk_live_), o un JWT de usuario final.

Obtener el esquema

GET /{workspaceId}/schema
{
  "tables": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "Clientes",
      "columns": [
        { "id": "…", "name": "Nombre", "type": "ShortText", "isKey": true,  "isNative": false, "isRequired": true,  "pointsTo": null, "entityId": null },
        { "id": "…", "name": "Dueño",  "type": "Table",     "isKey": false, "isNative": false, "isRequired": false, "pointsTo": "…",  "entityId": null },
        { "id": "…", "name": "Estado", "type": "Status",    "isKey": false, "isNative": false, "isRequired": false, "pointsTo": null, "entityId": "…" }
      ]
    }
  ]
}

Campo

Significado

id

El GUID que pones en refs (tabla) o que direccionas en una consulta (columna)

type

El tipo de dato de la columna

isKey

Es la columna clave de la tabla

isNative

Una columna que gestiona la plataforma, como CREATEDDATE, no una que agregó alguien

isRequired

Una escritura tiene que informarla

pointsTo

En una columna de relación, el GUID de la tabla a la que apunta

entityId

En una columna Status, el GUID de su grupo de estados

La respuesta está filtrada dos veces. Contiene sólo las tablas que la credencial alcanza, y de esas sólo las que tienen la introspección de esquema encendida en su permiso. Una tabla que puedes consultar no es necesariamente una tabla que puedes introspeccionar: es un ajuste aparte, y una credencial que viaja a un navegador es buena razón para dejarlo apagado.

Obtener los grupos de estados

El entityId de una columna Status nombra su grupo. Estas rutas convierten ese GUID en las opciones mismas — incluidas las que nadie usó todavía, que es la diferencia entre un tablero que conserva su columna vacía y uno que la pierde apenas se mueve la última tarjeta.

GET /{workspaceId}/schema/status-groups
{
  "statusGroups": [
    {
      "id": "…",
      "name": "Etapa del negocio",
      "statuses": [
        { "id": "…", "name": "Nuevo",   "color": "3b82f6", "position": 0 },
        { "id": "…", "name": "Ganado",  "color": "16a34a", "position": 1 },
        { "id": "…", "name": "Perdido", "color": "dc2626", "position": 2 }
      ]
    }
  ]
}
GET /{workspaceId}/schema/status-groups/{statusGroupId}

Devuelve un grupo, en la misma forma, direccionado por el entityId que ya te dio la respuesta del esquema.

Un valor Status leído desde /query es el GUID de la opción, no su nombre. Compara contra id, y usa name sólo para mostrar.

Errores

La forma plana —{ "error": "…" }— con el significado en el estado.

Estado

Causa

401

Sin credencial, o con una que no vale aquí

403

La credencial pertenece a otro workspace

404

No existe ese grupo de estados, o está fuera de los permisos de la credencial