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
| Propiedad | Tipo | Descripción |
|---|---|---|
id | UUID | ID del proyecto |
name | string | Nombre del proyecto, único dentro del tenant (sin distinguir mayúsculas) |
rootAudienceId | UUID | ID de la audiencia raíz del proyecto |
isMain | boolean | true 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 permisoproject:update. Sin él, la API responde403—No tiene permiso para editar la audiencia raíz del proyecto. - La audiencia raíz no se puede eliminar:
DELETE /api/audience-criterias/:idresponde409—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
| Permiso | Otorga | Roles |
|---|---|---|
project:view | Listar los proyectos del tenant | super_admin, admin, fde, supervisor, operator, viewer |
project:create | Crear proyectos | super_admin, admin, fde |
project:update | Renombrar proyectos y editar su audiencia raíz | super_admin, admin, fde |