> ## Documentation Index
> Fetch the complete documentation index at: https://docs.centure.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Project Events

> Audit log events for project lifecycle and access management

Project events track actions related to project creation, configuration, and access views. These events record when users create projects, modify project settings, and view project information.

<Info>
  All project events include the standard [actor, targets, context, and metadata](/logs/audit-events#base-event-schema) fields. The schemas below show event-specific fields.
</Info>

## project.create

Records when a new project is created within an organization.

### Triggered When

User creates a new project through the project creation form.

### Event Schema

<ResponseField name="action" type="string" required>
  `project.create`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="project target">
    <ResponseField name="type" type="string" required>
      `project`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Project's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Project name
    </ResponseField>

    <ResponseField name="metadata.organization_id" type="string" required>
      Organization's unique identifier
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Page route where project was created (e.g., `/organizations/[orgId]/projects/new`)
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "project.create",
  "occurredAt": "2025-01-15T10:30:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "project",
      "id": "proj_01JGXYZ789",
      "name": "Production Environment",
      "metadata": {
        "organization_id": "org_01JGXYZ456"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "/organizations/org_01JGXYZ456/projects/new"
  }
}
```

***

## project.update\_name

Records when a project's name is changed.

### Triggered When

User with owner or editor permissions updates the project name in project settings.

### Event Schema

<ResponseField name="action" type="string" required>
  `project.update_name`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="project target">
    <ResponseField name="type" type="string" required>
      `project`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Project's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Project's new name (post-update)
    </ResponseField>

    <ResponseField name="metadata.old_name" type="string" required>
      Project's previous name
    </ResponseField>

    <ResponseField name="metadata.new_name" type="string" required>
      Project's new name
    </ResponseField>

    <ResponseField name="metadata.organization_id" type="string" required>
      Organization's unique identifier
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Always `project_settings`
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "project.update_name",
  "occurredAt": "2025-01-15T14:20:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "project",
      "id": "proj_01JGXYZ789",
      "name": "Production API",
      "metadata": {
        "old_name": "Production Environment",
        "new_name": "Production API",
        "organization_id": "org_01JGXYZ456"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "project_settings"
  }
}
```

***

## project.delete

Records when a project is permanently deleted from an organization.

### Triggered When

User with owner permissions deletes a project via the delete action in project settings.

### Event Schema

<ResponseField name="action" type="string" required>
  `project.delete`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="project target">
    <ResponseField name="type" type="string" required>
      `project`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Project's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Project name
    </ResponseField>

    <ResponseField name="metadata.name" type="string" required>
      Project name (duplicate for searchability)
    </ResponseField>

    <ResponseField name="metadata.organization_id" type="string" required>
      Organization's unique identifier
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Page route where project was deleted: `/projects/[projectId]/settings`
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "project.delete",
  "occurredAt": "2025-01-16T11:00:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "project",
      "id": "proj_01JGXYZ789",
      "name": "Production Environment",
      "metadata": {
        "name": "Production Environment",
        "organization_id": "org_01JGXYZ456"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "/projects/proj_01JGXYZ789/settings"
  }
}
```

***

## project.view\_settings

Records when a user views the project settings page.

### Triggered When

User navigates to the project settings page.

### Event Schema

<ResponseField name="action" type="string" required>
  `project.view_settings`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="project target">
    <ResponseField name="type" type="string" required>
      `project`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Project's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Project name
    </ResponseField>

    <ResponseField name="metadata.name" type="string" required>
      Project name (duplicated for consistency)
    </ResponseField>

    <ResponseField name="metadata.organization_id" type="string" required>
      Organization's unique identifier
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Page route (e.g., `/projects/[projectId]/settings`)
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "project.view_settings",
  "occurredAt": "2025-01-15T09:15:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "project",
      "id": "proj_01JGXYZ789",
      "name": "Production Environment",
      "metadata": {
        "name": "Production Environment",
        "organization_id": "org_01JGXYZ456"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "/projects/proj_01JGXYZ789/settings"
  }
}
```

***

## project.list

Records when a user views the list of projects in an organization.

### Triggered When

User navigates to the organization's projects page.

### Event Schema

<ResponseField name="action" type="string" required>
  `project.list`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="organization target">
    <ResponseField name="type" type="string" required>
      `organization`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Organization's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Organization name
    </ResponseField>

    <ResponseField name="metadata.name" type="string" required>
      Organization name (duplicated for consistency)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Page route (e.g., `/organizations/[orgId]/projects`)
</ResponseField>

<ResponseField name="metadata.total_projects" type="string" required>
  Total number of projects accessible to the user (as string)
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "project.list",
  "occurredAt": "2025-01-15T11:45:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "organization",
      "id": "org_01JGXYZ456",
      "name": "Acme Corp",
      "metadata": {
        "name": "Acme Corp"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "/organizations/org_01JGXYZ456/projects",
    "total_projects": "5"
  }
}
```

***

## project.list\_memberships

Records when a user views the list of members in a project.

### Triggered When

User queries the project members list via the members API endpoint.

### Event Schema

<ResponseField name="action" type="string" required>
  `project.list_memberships`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="project target">
    <ResponseField name="type" type="string" required>
      `project`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Project's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Project name
    </ResponseField>

    <ResponseField name="metadata.name" type="string" required>
      Project name (duplicated for consistency)
    </ResponseField>

    <ResponseField name="metadata.organization_id" type="string" required>
      Organization's unique identifier
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Page route where members were listed (e.g., `/projects/[projectId]/members`)
</ResponseField>

<ResponseField name="metadata.page" type="string" required>
  Page number in pagination (as string)
</ResponseField>

<ResponseField name="metadata.limit" type="string" required>
  Number of results per page (as string)
</ResponseField>

<ResponseField name="metadata.total_results" type="string" required>
  Total number of members returned (as string)
</ResponseField>

<ResponseField name="metadata.query" type="string">
  Search query used to filter members (empty string if no filter)
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "project.list_memberships",
  "occurredAt": "2025-01-15T13:30:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "project",
      "id": "proj_01JGXYZ789",
      "name": "Production Environment",
      "metadata": {
        "name": "Production Environment",
        "organization_id": "org_01JGXYZ456"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "/projects/proj_01JGXYZ789/members",
    "page": "1",
    "limit": "50",
    "total_results": "8",
    "query": ""
  }
}
```

***

## project.list\_available\_invitees

Records when a user views the list of organization members who can be invited to a project.

### Triggered When

User queries the available invitees list via the available invitees API endpoint (typically when adding new project members).

### Event Schema

<ResponseField name="action" type="string" required>
  `project.list_available_invitees`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="project target">
    <ResponseField name="type" type="string" required>
      `project`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Project's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Project name
    </ResponseField>

    <ResponseField name="metadata.name" type="string" required>
      Project name (duplicated for consistency)
    </ResponseField>

    <ResponseField name="metadata.organization_id" type="string" required>
      Organization's unique identifier
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Page route where available invitees were listed (e.g., `/projects/[projectId]/available-invitees`)
</ResponseField>

<ResponseField name="metadata.page" type="string" required>
  Page number in pagination (as string)
</ResponseField>

<ResponseField name="metadata.limit" type="string" required>
  Number of results per page (as string)
</ResponseField>

<ResponseField name="metadata.total_results" type="string" required>
  Total number of available invitees returned (as string)
</ResponseField>

<ResponseField name="metadata.query" type="string">
  Search query used to filter available invitees (empty string if no filter)
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "project.list_available_invitees",
  "occurredAt": "2025-01-15T15:00:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "project",
      "id": "proj_01JGXYZ789",
      "name": "Production Environment",
      "metadata": {
        "name": "Production Environment",
        "organization_id": "org_01JGXYZ456"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "/projects/proj_01JGXYZ789/available-invitees",
    "page": "1",
    "limit": "50",
    "total_results": "15",
    "query": ""
  }
}
```

<Note>
  This event shows organization members who are not yet project members. The list excludes users who already have access to the project.
</Note>

***

## Related Events

<CardGroup cols={2}>
  <Card title="Project Memberships" icon="users" href="/logs/events/project-memberships">
    User access grants and role changes for projects
  </Card>

  <Card title="Organizations" icon="building" href="/logs/events/organizations">
    Organization-level settings and configuration
  </Card>

  <Card title="MCP Proxies" icon="shield-check" href="/logs/events/mcp-proxies">
    MCP proxy creation and management within projects
  </Card>

  <Card title="Analytics" icon="chart-line" href="/logs/events/analytics">
    Project analytics and usage metrics views
  </Card>
</CardGroup>
