Serge Huber created UNOMI-904: --------------------------------- Summary: V2 API Compatibility mode Key: UNOMI-904 URL: https://issues.apache.org/jira/browse/UNOMI-904 Project: Apache Unomi Issue Type: Sub-task Components: unomi(-core) Affects Versions: unomi-3.0.0 Reporter: Serge Huber Fix For: unomi-3.0.0
h2. Summary Enable client applications designed for Apache Unomi V2 to work with Unomi V3 without requiring immediate code changes or authentication modifications. h2. Problem Statement h3. Background Apache Unomi V3 introduces comprehensive multi-tenancy support with a new tenant-based authentication model using API keys. This represents a fundamental architectural change from V2's system administrator authentication approach. h3. Current Situation * Organizations running Unomi V2 have multiple client applications using V2 authentication patterns * V2 clients cannot connect to Unomi V3 without authentication code changes * All client applications must be updated simultaneously to migrate to V3 * No gradual migration path exists for organizations with multiple applications * Migration requires immediate code changes across all client applications h3. Business Impact * *Service Disruption Risk*: Organizations must update all client applications before migrating to V3 * *Migration Complexity*: No ability to migrate applications incrementally * *Downtime Requirements*: All applications must be updated and tested simultaneously * *Resource Constraints*: Organizations need to allocate significant development resources for immediate migration * *Testing Overhead*: All client applications must be tested with new authentication before migration h3. Technical Challenges * V2 clients use system administrator authentication (karaf/karaf) for private endpoints * V2 clients send public endpoints (like `/context.json`) without authentication * V2 clients use IP + X-Unomi-Peer headers for protected events * V3 requires tenant-specific API keys for all operations * V3 enforces tenant context for all data operations h3. Migration Barriers * *Authentication Model Mismatch*: V2 and V3 use completely different authentication approaches * *No Backward Compatibility*: V3 does not support V2 authentication patterns * *All-or-Nothing Migration*: Cannot migrate applications one at a time * *Testing Complexity*: Cannot test V3 migration with existing V2 clients * *Rollback Difficulties*: No easy way to revert if migration issues occur h2. User Stories h3. As an Organization with Multiple V2 Client Applications I want to migrate to Unomi V3 gradually so that I can: * Test V3 with my existing V2 applications before making changes * Migrate applications one at a time to minimize risk * Maintain service continuity during the migration process * Validate V3 functionality with real V2 client behavior h3. As a System Administrator I want to enable V2 compatibility in Unomi V3 so that I can: * Deploy V3 without immediately updating all client applications * Test V3 in production with existing V2 clients * Gradually migrate applications over time * Maintain operational stability during migration h3. As a Developer I want to test V3 compatibility with V2 clients so that I can: * Verify V3 works with existing V2 authentication patterns * Test V3 features without modifying client code * Validate migration scripts and data transformation * Ensure no breaking changes in API behavior h2. Acceptance Criteria h3. Functional Requirements * [ ] V2 client applications can connect to Unomi V3 without code changes * [ ] V2 authentication patterns work with Unomi V3 * [ ] Public endpoints (like `/context.json`) work without authentication * [ ] Private endpoints work with system administrator authentication * [ ] Protected events work with IP + X-Unomi-Peer authentication * [ ] V2 clients can send events and retrieve context data * [ ] V2 clients can access profiles and segments * [ ] V2 clients can manage rules and schemas h3. Migration Requirements * [ ] Organizations can migrate to V3 without updating all client applications * [ ] V2 clients work immediately after V3 deployment * [ ] Gradual migration of applications is supported * [ ] V2 compatibility can be enabled/disabled via configuration * [ ] V2 compatibility mode is temporary and can be removed after migration h3. Testing Requirements * [ ] Existing V2 test suites work with Unomi V3 when V2 compatibility mode is activated * [ ] V2 client applications can be tested against V3 * [ ] Migration testing can be performed with real V2 clients * [ ] V2 compatibility mode can be tested independently h2. Business Value * *Reduced Migration Risk*: Organizations can test V3 before committing to full migration * *Gradual Migration*: Applications can be migrated incrementally over time * *Service Continuity*: No service disruption during V3 migration * *Reduced Development Effort*: Organizations can migrate at their own pace * *Improved Testing*: Real V2 clients can be used to test V3 functionality h2. Success Metrics * V2 client applications work with Unomi V3 without modifications * Organizations can successfully migrate from V2 to V3 * Migration process does not cause service disruptions * V2 compatibility mode enables successful V3 adoption h2. Dependencies * Unomi V3 multi-tenant architecture * V2 authentication patterns and behaviors * Existing V2 client applications * Migration scripts for V2 to V3 data transformation -- This message was sent by Atlassian Jira (v8.20.10#820010)