Skip to content

Schema: guard the destructive DSL rebuild vs the non-destructive properties edit #22

Description

@Adron

Problem

PUT /api/lists/{id}/schema has two body shapes with very different consequences:

  • a schema DSL object → destructive: wipes and recreates all columns (and, per the docs, name becomes the list's new title);
  • a properties array → non-destructive: rename a label, add/remove one column, row data preserved.

Shipping a single "Save schema" button that always sends the DSL form would silently destroy users' data.

Acceptance criteria

  • Label edits, single add/remove, and reordering route through the properties shape.
  • The DSL rebuild path is a separate, explicitly-labelled action.
  • The rebuild requires in-place confirmation naming what is lost (no blocking native message box — see the dispatcher rule in CLAUDE.md).
  • The rebuild path notes that schema.name overwrites the list title.
  • Verified on a throwaway test list that the properties path preserves rows.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Table stakesarea:listsArea: listsparityWeb/API feature-parity work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions