Organization

Una Organization es el contenedor de nivel superior que agrupa Spaces. Una empresa o un equipo corresponde a una Organization, y bajo ella se ubican varios Spaces. El plan de suscripción (plan) y la membresía se gestionan a nivel de Organization, por lo que la facturación y los permisos de los miembros se aplican según esta Organization, no según el Space.

La lista de Organizations a las que perteneces se consulta mediante GET /me/organization-memberships. Este recurso no dispone de un endpoint que devuelva la lista completa.

Estructura del recurso

A continuación se muestra la respuesta de consulta individual de la Organization "DailyWear Compañía". Tiene sys (propiedades del sistema) y las propiedades del cuerpo name y description.

{
  "sys": {
    "id": "ilLRJxDp",
    "type": "Organization",
    "createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "createdAt": "2026-05-11T10:51:16.832Z",
    "updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "updatedAt": "2026-05-11T10:51:16.832Z",
    "version": 1,
    "isOfficial": false,
    "plan": { "sys": { "id": "free", "type": "Refer", "targetType": "Plan" } }
  },
  "name": "DailyWear Compañía",
  "description": "Empresa que gestiona una tienda en línea de ropa y accesorios"
}

Claves principales:

  • name: el nombre de la Organization (de 1 a 64 caracteres). Es el nombre visible de la empresa o el equipo.
  • description: una descripción de la Organization (de 1 a 128 caracteres, opcional).
  • plan: un Refer<Plan> que apunta al plan de suscripción de esta Organization (por ejemplo, free). El plan de facturación está vinculado aquí.
  • isOfficial: indica si es una Organization oficial (boolean).

Propiedades del sistema (sys) y cuerpo

Toda Organization incluye sus propiedades del sistema comunes en el objeto sys. createdBy y updatedBy se incluyen con la forma Refer ({ "sys": { "id", "type": "Refer", "targetType" } }), y plan es un Refer<Plan>.

PropiedadTipoDescripción
idstringIdentificador único del recurso.
typestringTipo de recurso. Para una Organization siempre es "Organization".
createdByRefer<User>Usuario que lo creó.
createdAtstring (date-time)Fecha y hora de creación.
updatedByRefer<User>Último usuario que lo modificó.
updatedAtstring (date-time)Fecha y hora de la última modificación.
versioninteger (≥1)Versión del recurso. Aumenta en 1 cada vez que se modifica.
isOfficialbooleanIndica si la Organization es oficial.
planRefer<Plan>Plan de suscripción. Por ejemplo: free.

Propiedades del cuerpo:

PropiedadTipoDescripción
namestring (1~64)Nombre de la Organization. Se indica al crear y al modificar.
descriptionstring (1~128)Descripción de la Organization. Es un campo opcional.
iconstring (lectura) / object (escritura)Icono de la Organization. En la respuesta es una cadena con la URL de la imagen. En la solicitud de modificación se envía como un objeto que apunta al archivo subido { "upload": { "sys": { ..., "targetType": "Upload" } } } (referencia al Upload obtenido mediante la API de Upload).
consoleHomeUrlstring (uri)Página que se muestra en lugar de la pantalla de inicio predeterminada en todos los Spaces de esta Organization. Se indica una URL https que no apunte a la dirección de la consola (condiciones). Es un campo opcional.

Una Organization es un recurso de configuración sin concepto de publicación. Por eso, a diferencia de Content y Media, su sys no tiene publish, archive ni status, y solo dispone de version. El campo version aumenta cada vez que se modifica la Organization.

La modificación (PUT) reemplaza el recurso completo, pero el significado de no enviar un valor es opuesto en estos dos campos opcionales. Si se omite icon, el icono existente se mantiene; en cambio, si se omite consoleHomeUrl, la dirección guardada se borra. Para conservar una dirección ya indicada hay que enviar ese valor en cada modificación. La modificación parcial (PATCH) solo toca las propiedades indicadas en el parche, así que si no se indica consoleHomeUrl, se deja tal cual.

Condiciones de la página que se muestra en la pantalla de inicio

Que la dirección se haya guardado no significa que esa página se muestre. Aunque se indique una dirección que rechaza ser mostrada, la solicitud de guardado tiene éxito y no se devuelve ningún error, y el problema solo se revela porque en la pantalla de inicio no aparece nada.

Para que se muestre en ese lugar, la página debe cumplir lo siguiente.

  • Se sirve por HTTPS. Como la consola funciona sobre HTTPS, el navegador bloquea la visualización de las páginas que no usan una conexión segura.
  • Permite mostrarse dentro de otra página. En las cabeceras de respuesta se indica Content-Security-Policy: frame-ancestors https://console.weegloo.com. Si X-Frame-Options está bloqueando la visualización, hay que ajustarlo también.
  • Si usa cookies, se emiten con SameSite=None; Secure. Como el contexto es el de una página mostrada dentro de otro sitio, las cookies que no llevan esa marca no se envían.

La página se muestra dentro de un <iframe>, y en ese marco solo están habilitados los permisos siguientes.

AtributoLo que la página puede hacer
sandbox="allow-scripts"Ejecutar scripts.
sandbox="allow-same-origin"Leer y escribir las cookies y el almacenamiento de su propio origen, y enviar peticiones a su propio servidor.
sandbox="allow-forms"Enviar formularios.
sandbox="allow-popups"Abrir una ventana o una pestaña nueva.
sandbox="allow-popups-to-escape-sandbox"Que la ventana abierta así no herede estas restricciones.
sandbox="allow-downloads"Iniciar la descarga de archivos.
sandbox="allow-storage-access-by-user-activation"Solicitar permiso de acceso al almacenamiento cuando el usuario interactúa.
allow="fullscreen"Pasar a pantalla completa.
allow="clipboard-write"Escribir en el portapapeles.

Lo que no figura aquí no funciona. En ese caso no se produce ningún error y la llamada se ignora en silencio, así que desde el código no se puede saber si ha sido bloqueada.

Al marco se le indica además referrerpolicy="strict-origin-when-cross-origin". Por eso a la página solo se le transmite el origen de la consola, y no desde qué pantalla se ha abierto.

Al margen de sandbox, las páginas que requieren inicio de sesión pueden no funcionar correctamente. Muchos proveedores de inicio de sesión bloquean el inicio de sesión dentro de otra página, así que el inicio de sesión social no suele funcionar.

Errores

Códigos que se encuentran al trabajar con Organization. Para los códigos comunes a todos los recursos, consulte Errores comunes.

CódigoCondición
WGL422078La petición intenta eliminar una Organization cuyo plan de precios no es el gratuito. Primero hay que bajar la Organization al plan gratuito.
WGL422079La petición intenta eliminar una Organization cuya suscripción no está cancelada o que tiene un cambio pendiente.
WGL422024La petición intenta eliminar una Organization en la que todavía quedan Space. La Organization solo se puede eliminar después de borrar todos los Space.
WGL422046El archivo subido como icon supera el tamaño permitido.
WGL422047El archivo subido como icon no es PNG, JPG ni WebP.
WGL400072El formato de consoleHomeUrl no es válido, o apunta a la dirección de la consola.

API

La URL base de todos los endpoints siguientes es https://cma.weegloo.com/v1, y se requiere un token Bearer que autentique en CMA en la cabecera Authorization. Las modificaciones y las modificaciones parciales requieren enviar además la cabecera X-Weegloo-Version (el sys.version actual del recurso) para el control de concurrencia optimista. La creación y la eliminación no llevan esta cabecera.

  • Space: el Space bajo esta Organization.
  • Organization Membership: consulta de los miembros de la Organization y de las organizaciones a las que perteneces.