Merged
Size
M
Change Breakdown
Feature70%
Refactor30%
#28323 feat(core): Project based data table creation and transfer

Data tables now support project-scoped creation

Data tables now support project-scoped creation

The public API for data tables now lets developers create tables in specific projects and filter listings by project — not just their personal workspace.

The public API for data tables previously created all tables in the user's personal project with no option to scope them elsewhere. Now the API accepts an optional projectId when creating tables, and non-admin users can filter their data table listings by project with proper access checks.

Admins can list tables across all projects or scope to a specific one. Regular users can only access projects where they have the dataTable:listProject scope — if they request a project they don't have access to, they receive an empty result set rather than an error, maintaining consistent behavior with other list endpoints.

This change touches the CLI package's public API layer. The project ID resolution logic was extracted into dedicated service functions for maintainability, and the OpenAPI spec was updated with examples showing both personal project and explicit project creation flows.

View Original GitHub Description

Summary

Extends the public v1 data tables API so tables can be created in a specific project, listed with optional projectId filtering (with correct project-scope checks for non-admins).

How to test

  • Manually: create data tables via public API with projectId in create body, list query filter, and PATCH body as documented in OpenAPI

https://www.loom.com/share/269ed04bf7d34a78ab176b7471e9840a

Related Linear tickets, Github issues, and Community forum posts

Closes LIGO-416

Review / Merge checklist

  • I have seen this code, I have run this code, and I take responsibility for this code.
  • PR title and summary are descriptive. (conventions) <!-- **Remember, the title automatically goes into the changelog. Use `(no-changelog)` otherwise.** -->
  • Docs updated or follow-up ticket created.
  • Tests included. <!-- A bug is not considered fixed, unless a test is added to prevent it from happening again. A feature is not complete without tests. -->
  • PR Labeled with Backport to Beta, Backport to Stable, or Backport to v1 (if the PR is an urgent fix that needs to be backported)
© 2026 · via Gitpulse