Repository navigation
Conversation
Introduces three optional features that let non-SQL users browse and modify data without writing statements, while leaving existing pgweb behaviour untouched. * Inline cell editing: double-click an editable cell to edit in place. Enter saves, Escape cancels, modified cells are highlighted and only the changed row is patched in the UI - no full table refresh. * Row management: New / Edit / Delete actions backed by a modal form generated from table metadata, with composite primary key support and a confirmation summary before deletion. * Multi-column filtering: stack conditions with =, !=, >, >=, <, <=, LIKE, ILIKE, IN, IS NULL and IS NOT NULL, combined with AND. Filters render as removable chips and are pushed down to PostgreSQL so pagination and large tables are unaffected. All statements are built as parameterized queries. Column names are validated against cached table metadata and identifiers are quoted, so user input never reaches SQL as text. Metadata is cached per connection (bounded at 256 entries) to avoid repeated schema lookups. Row editing is enabled by default and can be turned off with --no-row-editing / PGWEB_NO_ROW_EDITING. It is also disabled automatically in read-only mode. Adds unit tests for the metadata, filter and CRUD builders, integration tests for the row endpoints, and API-level handler tests.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Introduces three optional features that let non-SQL users browse and modify data without writing statements, while leaving existing pgweb behaviour untouched.
All statements are built as parameterized queries. Column names are validated against cached table metadata and identifiers are quoted, so user input never reaches SQL as text. Metadata is cached per connection (bounded at 256 entries) to avoid repeated schema lookups.
Row editing is enabled by default and can be turned off with --no-row-editing / PGWEB_NO_ROW_EDITING. It is also disabled automatically in read-only mode.
Adds unit tests for the metadata, filter and CRUD builders, integration tests for the row endpoints, and API-level handler tests.