You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
QA sub-epic for the ES → OpenSearch migration pipeline under #34164. Covers end-to-end validation of the dual-write pipeline across Phases 0, 1, and 2 (partial), plus acceptance criteria for PR #35632 (startup hardening).
Index lifecycle operations (activate, deactivate, delete, reindex) — including ES-only vs OS-only name variants
Content Type and contentlet create/delete sync between ES and OS shadow index
Multi-node cluster startup consistency in Phase 1
Invalid OS_ENDPOINTS graceful degradation
REST API security: DELETE /v1/esindex requires admin authentication
Complex query equivalence between Kibana and OpenSearch Dashboards
DB Validation Queries
-- All index rowsSELECT*FROM indicies ORDER BY index_name;
-- OS rows only (os:: prefix = DB artifact, never visible to callers)SELECT*FROM indicies WHERE index_name LIKE'os::%';
-- Count per providerSELECT CASE WHEN index_name LIKE'os::%' THEN 'OS' ELSE 'ES' END AS provider, COUNT(*) FROM indicies GROUP BY1;
-- Expected Phase 0: 2 rows (ES only). Expected Phase 1 fresh: 4 rows (2 ES + 2 OS).
Description
QA sub-epic for the ES → OpenSearch migration pipeline under #34164. Covers end-to-end validation of the dual-write pipeline across Phases 0, 1, and 2 (partial), plus acceptance criteria for PR #35632 (startup hardening).
Parent epic: #34164 — Migrate Mapping Layer classes
Fix PR: #35632 — Startup validation hardening,
haltMigration(), phase-aware index init, thread-safe formatterTest plans:
docs/backend/OPENSEARCH_MIGRATION_TEST_PLAN.md— base scenarios A–F (Phases 0–3)local/test-plans/35631-35632-test-plan.md— extended scenarios for PR fix(os-migration): harden startup validation, add emergency halt path, fix thread-safe formatter #35632 (Groups 1–8, TC-001–TC-025)Environment Setup
# Start migration stack (ES 7.10 + Kibana + OpenSearch 3.x + Dashboards) docker compose -f docker/docker-compose-examples/os-migration/docker-compose.yml up -dMigration Phase Reference
Scope
haltMigration()auto-resets phase to 0 when OS is unreachable or has the wrong version at startuphasEmptyIndices()is phase-aware — empty OS index in Phase 1 does not trigger a false ES reindexthreadSafeTimestampFormatterprevents corrupted index names under concurrent requestsOS_ENDPOINTSgraceful degradationDELETE /v1/esindexrequires admin authenticationDB Validation Queries
Child Tasks
PR #35632 Acceptance & Startup Hardening
DOT_OS_ENDPOINTSValues (TC-006–TC-008)Cluster & Infrastructure
Content Lifecycle Sync
Index Lifecycle
Security & Query Validation
Acceptance Criteria
docs/backend/OPENSEARCH_MIGRATION_TEST_PLAN.mdupdated to reflecthaltMigration()behavior (PR fix(os-migration): harden startup validation, add emergency halt path, fix thread-safe formatter #35632)match_phrase_prefixdivergence (TC-023) filed as a separate bugAdditional Context
Depends on: #34164
Fix PR: #35632