Reten Docs
Proyectos

Proyectos

Canales comerciales dentro de un tenant — cada proyecto es una frontera de datos con su propia audiencia raíz.

Descripción general

Un proyecto es un canal comercial dentro de un tenant. Es una frontera de datos: toda audiencia, filtro de eventos, Activity Generation Config, actividad y resultado de actividad pertenece a exactamente un proyecto desde el momento en que se crea, y nunca pasa a otro proyecto.

Todo tenant tiene al menos un proyecto: su proyecto principal, marcado con isMain: true. Todo tenant arranca con un proyecto principal llamado General; en los tenants que existían antes de que se introdujeran los proyectos, contiene todos sus datos anteriores. El proyecto principal se puede renombrar; la marca isMain no se puede cambiar.

Los proyectos también se gestionan desde el panel de administración de Reten, en Configuración → Proyectos.

Propiedades del proyecto

PropiedadTipoDescripción
idUUIDID del proyecto
namestringNombre del proyecto, único dentro del tenant (sin distinguir mayúsculas)
rootAudienceIdUUIDID de la audiencia raíz del proyecto
isMainbooleantrue para el proyecto principal del tenant

Audiencia raíz

Todo proyecto se crea junto con su audiencia raíz, llamada Toda la empresa: los comercios activos. Su ID se devuelve como rootAudienceId, y las respuestas de audiencias la marcan con isRoot: true.

  • Toda audiencia del proyecto se evalúa dentro de su audiencia raíz: el SQL de cualquier otra audiencia se intersecta con ella (ver Generar SQL).
  • La audiencia raíz se edita como cualquier otra audiencia, con PATCH /api/audience-criterias/:id, pero editarla exige además el permiso project:update. Sin él, la API responde 403 — No tiene permiso para editar la audiencia raíz del proyecto.
  • La audiencia raíz no se puede eliminar: DELETE /api/audience-criterias/:id responde 409 — La audiencia raíz de un proyecto no se puede eliminar.

Elegir el proyecto de una solicitud

Los endpoints de proyectos (/api/projects) son tenant-level: ignoran el header x-project-id, porque es ahí donde un cliente descubre los proyectos con los que puede trabajar.

Los endpoints que leen o escriben datos de un proyecto son project-scoped: cada solicitud trabaja en exactamente un proyecto, que se toma del header x-project-id o, con una clave de proyecto, de la propia clave. Las excepciones son GET /api/integration/activities/tasks y POST /api/integration/activity-results/tasks, que son project-optional: ahí el header es opcional y, si se envía, acota la solicitud a ese proyecto. Ver Autenticación → Contexto de Proyecto.

Permisos

PermisoOtorgaRoles
project:viewListar los proyectos del tenantsuper_admin, admin, fde, supervisor, operator, viewer
project:createCrear proyectossuper_admin, admin, fde
project:updateRenombrar proyectos y editar su audiencia raízsuper_admin, admin, fde

Endpoints