Legacy Data Views Removal Plan
Rails still contains an older data-view system built around views, view_columns, view_column_values, view_export_tasks, view_schedules, datasets, and dataset_fields. The current stored QA views live in api2 app_views, so the legacy Rails system can be removed as a planned cleanup rather than kept behind the Objects settings page.
Goal
Remove the legacy Rails data-view system and the dataset metadata tables without affecting api2 stored views, sheets, or field-based object attribute management.
Progress
- Completed phase 1: removed the Rails legacy data-view routes, controllers, jobs, mailer, blueprints, policies, specs, and OpenAPI entries.
- Completed phase 2: removed the legacy
/data-viewsUI, the Rails-backedfeatures/viewsclient code, and the/views/view_*redirect to/data-views. - Completed the Objects UI cleanup from phase 3: Objects index/detail no longer call
/datasets, and the orphaned dataset-field clients/components have been removed.
Remaining Dependencies
Sheethas legacy support forparent_type = "View"and view-schedule report delivery.- Database tables have foreign-key chains from
datasetstodataset_fields, and fromviewsto columns, custom values, schedules, exports, and sheet parents.
Phases
- Remove the Rails legacy data-view API surface: routes, controllers, jobs, mailer, blueprints, policies, and endpoint specs for views, view rows, view columns, view export tasks, view schedules, datasets, and dataset fields.
- Remove the legacy
/data-viewsUI andfeatures/viewsRails-client code, while keeping api2 stored views under/views. - Rewrite Objects detail away from
/datasets/{id}so Interactions, Customers, Companies, and Employees use direct field endpoints. - Clean up
Sheetlegacy view-parent and view-schedule behavior, including scheduled-report columns if they are no longer needed. - Drop legacy tables with a migration in dependency order: view schedule/export/value/column tables first, then views, dataset fields, and datasets.
- Regenerate OpenAPI and generated web client types after each endpoint-removal phase that changes the Rails API contract.
Safety Notes
- Do not delete
api2.app_views; it backs current stored QA views. - Do not drop tables until all application references and queued jobs are removed or drained.
- Check for existing
sheets.parent_type = "View"andsheets.view_schedule_idrows before dropping view-related columns or tables. - Treat any customer-visible
/data-viewsroute removal as a navigation change and update the Instruct navigation guide when that phase lands.
Last updated on