feat!: snake_case table, PVS and permission names for 1.1.0-RC.3 (owner naming rule) #42

Merged
KofTwentyTwo merged 2 commits from feature/quick-search-snake-table-names into develop 2026-10-12 20:22:36 +00:00
KofTwentyTwo commented 2026-10-12 19:13:27 +00:00 (Migrated from github.com)

For the release captain, for 1.1.0-RC.3. Do not merge before #41: this branch is stacked on #41 (feature/developer-panel) because both touch the developer panel provider, CHANGELOG and README. When #41 merges, GitHub retargets this PR to develop.

Why

Owner naming rule (2026-10-12): "table names should always be lowercase and use _, and qbits should always be prefixed with their name". Owner decision: released and pre-release qbits are renamed in their next RC, metadata only.

What changes

Kind Before After
Tables quickSearchIndex, quickSearchIndexRun, quickSearchFailedEvent, quickSearchDiagnosticEvent, quickSearchValidationRun quick_search_index, quick_search_index_run, quick_search_failed_event, quick_search_diagnostic_event, quick_search_validation_run
Possible-value sources quickSearchIndex, quickSearchSearchableTable quick_search_index, quick_search_searchable_table
Permission bases quickSearchAdmin, quickSearchDebug, table permissions quickSearchIndex.* quick_search_admin, quick_search_debug, quick_search_index.*
Host prefix myApp_ + quickSearchIndex my_app_quick_search_index (new applyTablePrefix: snake_cased and joined with _)
  • The QBit has no security key types, so there are none to rename.
  • Process, widget and app names (quickSearchFullReindex, quickSearchDiagnostics, the quickSearchAdmin app) already use the full name and are unchanged. The record actions on failed events change only through the embedded table name.
  • @Deprecated(since = "1.1.0-RC.3") LEGACY_* constants keep every old name for upgrade scripts. They are to be removed in 2.0.
  • There is no DDL change: the QBit ships none. Hosts whose tables are already quick_search_* (kof22) change nothing in the database.

Upgrade note

The docs/MIGRATION-1.1.md section "Snake_case names (1.1.0-RC.3)" covers:

  • ALTER TABLE for hosts with camelCase tables
  • UPDATEs for audit_table.name, saved_view and saved_report.table_name
  • permission grants and bookmarks
  • why no reindex is needed: index rows, failed events and documents hold the host's table names, not the QBit's

There is also a CHANGELOG entry.

Tests

  • ./mvnw clean verify is green locally. That includes checkstyle and the Testcontainers OpenSearch ITs: 437 unit tests and 34 integration tests, 0 failures, 0 errors, 0 skipped.
  • The new QuickSearchTableNamesTest covers the new names, the legacy constants and prefix handling. Existing tests are updated to the new names.

Note

#40 (feature/record-search-details) is also open and may need a small rebase if it adds references to the old table names.

🤖 Generated with Claude Code

For the release captain, for **1.1.0-RC.3**. Do not merge before #41: this branch is stacked on #41 (`feature/developer-panel`) because both touch the developer panel provider, CHANGELOG and README. When #41 merges, GitHub retargets this PR to `develop`. ## Why Owner naming rule (2026-10-12): "table names should always be lowercase and use _, and qbits should always be prefixed with their name". Owner decision: released and pre-release qbits are renamed in their next RC, **metadata only**. ## What changes | Kind | Before | After | |---|---|---| | Tables | `quickSearchIndex`, `quickSearchIndexRun`, `quickSearchFailedEvent`, `quickSearchDiagnosticEvent`, `quickSearchValidationRun` | `quick_search_index`, `quick_search_index_run`, `quick_search_failed_event`, `quick_search_diagnostic_event`, `quick_search_validation_run` | | Possible-value sources | `quickSearchIndex`, `quickSearchSearchableTable` | `quick_search_index`, `quick_search_searchable_table` | | Permission bases | `quickSearchAdmin`, `quickSearchDebug`, table permissions `quickSearchIndex.*` | `quick_search_admin`, `quick_search_debug`, `quick_search_index.*` | | Host prefix | `myApp_` + `quickSearchIndex` | `my_app_quick_search_index` (new `applyTablePrefix`: snake_cased and joined with `_`) | - The QBit has no security key types, so there are none to rename. - Process, widget and app names (`quickSearchFullReindex`, `quickSearchDiagnostics`, the `quickSearchAdmin` app) already use the full name and are unchanged. The record actions on failed events change only through the embedded table name. - `@Deprecated(since = "1.1.0-RC.3")` `LEGACY_*` constants keep every old name for upgrade scripts. They are to be removed in 2.0. - There is no DDL change: the QBit ships none. Hosts whose tables are already `quick_search_*` (kof22) change nothing in the database. ## Upgrade note The `docs/MIGRATION-1.1.md` section "Snake_case names (1.1.0-RC.3)" covers: - `ALTER TABLE` for hosts with camelCase tables - `UPDATE`s for `audit_table.name`, `saved_view` and `saved_report.table_name` - permission grants and bookmarks - why no reindex is needed: index rows, failed events and documents hold the host's table names, not the QBit's There is also a CHANGELOG entry. ## Tests - `./mvnw clean verify` is green locally. That includes checkstyle and the Testcontainers OpenSearch ITs: 437 unit tests and 34 integration tests, 0 failures, 0 errors, 0 skipped. - The new `QuickSearchTableNamesTest` covers the new names, the legacy constants and prefix handling. Existing tests are updated to the new names. ## Note #40 (`feature/record-search-details`) is also open and may need a small rebase if it adds references to the old table names. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.