Skip to content

feat(extensions): Querya Extension Driver Mutation Standard (#563) - #628

Merged
ZhuchkaTriplesix merged 1 commit into
devfrom
issue/563-extension-mutation-standard
Aug 26, 2026
Merged

feat(extensions): Querya Extension Driver Mutation Standard (#563)#628
ZhuchkaTriplesix merged 1 commit into
devfrom
issue/563-extension-mutation-standard

Conversation

@ZhuchkaTriplesix

Copy link
Copy Markdown
Member

Summary

Implements the Querya Extension Driver Mutation Standard, defining and integrating data editing, staging, and mutation RPC capabilities across external database drivers.

Changes

  1. ExtensionDriverCapabilities (lib/core/extensions/models/extension_driver_capabilities.dart):
    • Added supportsMutations and supportsBatchMutations capability flags with full JSON-RPC serialization / deserialization and equality checks.
  2. ExtensionDriverSession Protocol (lib/core/extensions/extension_driver_session.dart):
    • Added getTableSchema method calling JSON-RPC db.getTableSchema to query table metadata (column types, nullability, primary keys).
    • Added mutate method calling JSON-RPC db.mutate for executing atomic batches of insert, update, and delete mutations.
  3. ExtensionTableView Integration (lib/features/extensions/extension_table_view.dart):
    • Integrated with DataGridStagingBuffer when the underlying driver reports supportsMutations: true.
    • Wired _onApplyChanges to fetch schema and dispatch structured mutation batches via ExtensionDriverSession.instance.mutate.
  4. Documentation (docs/tz-block-d-external-plugin.md):
    • Added Section 5 detailing the db.getTableSchema and db.mutate RPC request and response JSON schemas.
  5. Tests:
    • Added unit & capability tests in test/core/extensions/extension_driver_session_test.dart and test/features/extensions/extension_table_view_test.dart.

Closes #563

@ZhuchkaTriplesix
ZhuchkaTriplesix merged commit 6cd49b1 into dev Aug 26, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant