Files
OpenNoodl/dev-docs/tasks/phase-5-multi-target-deployment/01-byob-backend/TASK-007-integrated-backend/TASK-007J-COMPLETE.md
2026-01-16 12:00:31 +01:00

3.0 KiB

TASK-007J: Schema/Database Management UX - COMPLETE

Status: COMPLETE (with Known Issues)

Summary

Built Schema Manager and Data Browser UI panels with basic CRUD functionality. Uses id (UUID v4) as the primary key field to be compatible with Noodl frontend objects/arrays.

What Was Built

Schema Manager Panel

  • SchemaPanel - Main panel for viewing/managing database schemas
  • TableRow - Expandable row showing table name, columns, record count
  • CreateTableModal - Modal for creating new tables with initial columns
  • AddColumnForm - Form for adding columns (type dropdown, required checkbox)

Data Browser Panel

  • DataBrowser - Main data browsing UI with table selector, search, pagination
  • DataGrid - Spreadsheet-style grid with inline editing
  • CellEditor - Inline cell editor with type-aware input handling
  • NewRecordModal - Modal for creating new records

Backend Changes

  • Changed primary key from objectId to id with UUID v4
  • QueryBuilder uses id field for all operations
  • LocalSQLAdapter generates RFC 4122 UUIDs

Files Created/Modified

New UI Components

  • packages/noodl-editor/src/editor/src/views/panels/schemamanager/

    • SchemaPanel.tsx, SchemaPanel.module.scss
    • TableRow.tsx, TableRow.module.scss
    • CreateTableModal.tsx, CreateTableModal.module.scss
    • AddColumnForm.tsx, AddColumnForm.module.scss
    • index.ts
  • packages/noodl-editor/src/editor/src/views/panels/databrowser/

    • DataBrowser.tsx, DataBrowser.module.scss
    • DataGrid.tsx, DataGrid.module.scss
    • CellEditor.tsx, CellEditor.module.scss
    • NewRecordModal.tsx, NewRecordModal.module.scss
    • index.ts

Modified Backend Files

  • packages/noodl-runtime/src/api/adapters/local-sql/QueryBuilder.js
  • packages/noodl-runtime/src/api/adapters/local-sql/LocalSQLAdapter.js

Known Issues (Future Task)

The following bugs need to be addressed in a follow-up task:

Data Browser Bugs

  1. Object/Array fields don't work - Can't type into object/array field editors
  2. Cell editor focus issues - Sometimes loses focus unexpectedly
  3. Search functionality limited - Only searches String fields

Schema Manager Bugs

  1. Can't edit existing tables - Edit button only expands row, no add/remove columns
  2. Can't delete tables - No delete table functionality

SQLite/Backend Bugs

  1. Real SQLite database doesn't work - Falls back to in-memory mock
  2. better-sqlite3 import issues - Electron compatibility problems
  3. Schema persistence - Schema changes don't persist properly
  4. Query filtering - Complex WHERE clauses may not work correctly

UI/UX Issues

  1. Boolean toggle needs improvement - Checkbox isn't very intuitive
  2. Date picker needed - Currently just text input for dates
  3. Pointer/Relation fields - No UI for selecting related records
  4. File upload - No file upload/browse functionality

Next Steps

See TASK-007K-DRAFT.md for bug fixes and improvements.

Completion Date

January 15, 2026