[ 
https://issues.apache.org/jira/browse/UNOMI-904?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Serge Huber reassigned UNOMI-904:
---------------------------------

    Assignee: Serge Huber

> 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
>            Assignee: Serge Huber
>            Priority: Major
>             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)

Reply via email to