This is an automated email from the ASF dual-hosted git repository.
shuber pushed a change to branch unomi-3-dev
in repository https://gitbox.apache.org/repos/asf/unomi.git
at c26166234 UNOMI-139 Add V2/V3 API Compatibility Guide and Document Key
Differences
This branch includes the following new commits:
new 08347a0ca Initial commit of multi-tenancy work. Compilation passes but
probably not much else :)
new aea40a9f2 We now have a fully multi-tenant compliant and unit tested
definition service ! This commit also introduces in
InMemoryPersistenceServiceImpl class that makes it possible to use persistence
in unit tests.
new d0b03bfab - We now have better tests for removal of types - InMemory
persistence service in now using docIds that contain the tenantId - We now have
a unit test for the InMemory persistence service.
new 21a197480 Code cleanup: - Replace hardcoded "system" strings with a
constant coming from the TenantService interface
new b825659ac Code cleanup: - Add missing ASLv2 header
new 3fc6922f8 Add tenantId prefix to document IDs in both Elasticsearch
and OpenSearch persistence implementations.
new e01305bc5 - Add public and private API keys to be able to send events
and retrieve profiles from public endpoints. - Replaced third party server
system with Tenant configuration and validation - Added publicApiKey field to
the ContextRequest and EventsCollectorRequest objects - Updated
EventServiceImplTest tests to add support for the new way of testing event
approval - Updated the RestServiceUtilsImpl to integrate with the new tenant
system
new ab96dfedc - Add Karaf shell commands to manage Tenants - Improve
Tenant endpoint - Improve TenantIT to include REST endpoint testing - Improve
Javadoc comments
new d1168a8ea - Add Karaf shell commands to manage : campaigns, goals,
scopes, scoring - Add Karaf shell command completers - Add Rules service unit
tests
new aecf7c6e2 - Small fixes for issues found on starting Apache Unomi with
Elasticsearch
new 1be0ec69e - Added Karaf shell tenant commands - First successful Unomi
startup with new multi-tenant architecture ! - Replace Tenant transformation
service with a listener pattern so that multiple transformers may be used at
the same time
new 373d92279 Work on integrating authentication: - JAAS works for all
endpoints - Private API now requires tenantId as username and private tenant
API key as password - Public API now require tenant public key - Initial
modifications of integration tests to validate authentication - Initial
modification of documentation to reflect these changes.
new 1dbea99e1 Quick fixes based on initial testing of the integration
tests.
new c3166b1da - Add tenant inheritance for JSON schemas, PropertyTypes and
Personas - Added unit tests to validate implementations
new 692a4acbb Fix RulesServiceImplTest and project build.
new d87ee1049 Add missing property wiring
new 3d33f8558 - Fix implementation issues in authentication - Add tenant
testing and authentication to integration tests - Add tenant-aware caches to
goals, conditions, score and segment services - Update multi-tenancy
documentation - Fix tenaent service - Add checks when creating tenants - Add
new ROLE_UNOMI_TENANT for authorization - Lots more fixes
new 52223f5c5 - Fix schema service tenancy-aware implementation - Add
schema Karaf shell commands - Various small bug fixes
new 332a9e054 - Replace all custom item type CRUD commands with a single
unomi:crud command that can handle any object type - Expanded the item types
that we can use with the new CRUD command
new 6a4547e28 Lots of changes (again :)) - New abstract implementation to
remove code duplication between services for deployment of predefined items,
caching and multi-tenant management - Fixes in AuthenticationFilter to get
everything to work as expected - New SchemaServiceImpl that supports
persistence to the persistence service and allows multiple nodes to share the
jobs while making sure no two nodes execute the same task at the same time (for
persistent tasks) - Nodes may now b [...]
new f623fd3af - New architecture documentation - New scheduler task
commands - New (basic) clustering document - New ConditionEvaluationTracer
interface - New data structure schema - New event processing schema - New
SchedulerIT integration test - New Task REST endpoint - New CI github workflow
for documentation generation
new e3a65b306 Fix typo in condition evaluator
new 6471cbad6 - We now have in memory and persistent tasks listed in the
Karaf Shell list command - Improve the unit tests to make sure in memory tasks
are properly managed
new f5b3dd1f9 - Fix compilation issue - Hopefully fix recurrent condition
issue.
new ca44f76ad - Make sure the integration tests are using a subject with
the security service - Add a new createSubject method to the security service
new 326d22b63 - Improve reporting of detected tools in build.sh script -
Add Windows version of build script (not yet tested) - Update documentation
with building instructions for Windows
new 21ce2e348 - Replace all usages of the term operation with permission
to have a more unique and standard way of managing permission to roles
new 4b4f273a7 Fix mistake in refactoring
new f629e2115 - Fix invalid SchedulerServiceImpl service references and
fixed condition builders - Modified ObjectMapper used in commands with
CustomObjectMapper to have proper handling of JAXB annotations
new d251eeb87 - Make sure the properties structure exist before setting a
property
new 6c60c6200 - Add documentation on how to properly use the
pastEventCondition and how to structure its eventCondition
new 4bbadd919 Fix issues with ParserHelper handling of parent conditions
new b987c08df UNOMI-873 New Tracer service and request tracer to
collection information about the execution of requests to be able to "explain"
them.
new 8e0c483d7 Add missing ES and OS property mapping files for new
scheduler
new e933f08fa Fix item versioning implementation in
InMemoryPersistenceServiceImpl
new 4b8d69d36 UNOMI-873 Added missing dependency for new tracer service
new 9ba81a792 UNOMI-873 Moved tracer service impl to features that are
started
new ff5bccef7 UNOMI-883 New condition validation service with integration
into different service. All unit tests have been updated as well.
new 84fba4909 UNOMI-873 New tracing and explain system - Fix issues with
wiring
new db8a41479 UNOMI-883 New condition validation service - Add validation
to existing conditions for initial testing - Fix NPE in unbind method.
new f07fcc851 Fix bugs with past event condition segment calculations.
new a322b98b1 Add workaround in InMemoryPersistenceServiceImpl to support
keyword sub-field specification
new ee63a6344 [UNOMI-882] Documentation updates - Update quickstart with
latest stable release version - Add condition evaluation architecture diagram -
Add condition evaluation document to explain how conditions work - Add query
strategy selection to past event condition documentation - Add documentation on
scroll queries - Made request examples more consistent and update for
multi-tenancy - Add examples for birthday tracking - Add past event condition
examples
new f86e829b7 Bugfixes on segment condition evaluation
new dd2bbbf0b [UNOMI-881] Implement update methods of
InMemoryPersistenceServiceImpl
new 28e10a4e4 [UNOMI-881] Enhance InMemoryPersistenceServiceImpl path
resolution and query handling
new eac864598 [UNOMI-881] Enhance InMemoryPersistenceServiceImpl range
query and sorting capabilities
new 6e0607bd5 [UNOMI-878] Enhance Task Scheduling and Execution Framework
- Refactor scheduler service with comprehensive task management capabilities -
Add new managers for task state, lock, history, metrics, and validation -
Implement robust task lifecycle management with state transitions - Support
advanced scheduling features like task dependencies, retries, and recovery -
Improve cluster-aware task execution with lock management - Add detailed
metrics and execution history track [...]
new cfd552848 UNOMI-878 Refactor Scheduler Service Task Execution and
Scheduling
new 2ff1ec6f0 UNOMI-878 Enhance ASCII folding for property conditions in
Elasticsearch and OpenSearch
new fa382bdfc UNOMI-878 Refactor Geonames and Definitions Services to use
TaskExecutor
new 96100b5e5 UNOMI-878 Enhance Scheduler Service with Dynamic
TaskExecutor Registration
new 803faf264 UNOMI-873 Add request tracing support to context and event
collector endpoints
new 156f39d6e UNOMI-877: Refactor Cluster Node Management and Monitoring
Support
new 50f643346 UNOMI-878 - Introduce successCount field in ScheduledTask to
track successful task executions - Update task execution managers to increment
successCount on successful completion - Modify task-related methods to handle
and display success count - Add successCount to task listing and test scenarios
- Enhance task metrics and reporting with success tracking
new 40232838b UNOMI-877: Fix Stale Node Detection in Cluster Service
new f9b2dd96f UNOMI-880 Add post-processor support for CacheableTypeConfig
to resolve condition types
new a07b9be2f UNOMI-880: Fix ParserHelper method call in
DefinitionsServiceImpl
new ad30661fa UNOMI-880: Add error handling for value extraction in
ParserHelper
new 66f2e14b3 UNOMI-881 Refactor InMemoryPersistenceServiceImpl to use
Item.getItemType for index resolution
new 91a293938 UNOMI-881 Enhance InMemoryPersistenceServiceImpl with
Comprehensive Index and Purge Operations
new 19c688793 UNOMI-881: Implement Comprehensive CustomItem Operations in
InMemoryPersistenceService
new ea39adb57 UNOMI-881: Implement getAllItemsCount and isConsistent in
InMemoryPersistenceService
new d80ac31f4 UNOMI-882 Update documentation for profile merging in Apache
Unomi
new 5ec394292 UNOMI-881: Add Optimistic Concurrency Control and Sequence
Numbering to InMemoryPersistenceService
new c0abfb4d3 UNOMI-878 Enhance Distributed Task Locking and Scheduling
with Robust Cluster Support
new 5116f86bc UNOMI-883: Add Migration Scripts for Audit Fields and Tenant
Initialization in Unomi 3.0.0
new 6bd2325ac UNOMI-881 Standardize Test Teardown and Resource Cleanup
Across Services
new 0bb28050d UNOMI-878: Enhance Scheduler Service with System Task
Support and Robust Restart Handling
new 633d42e96 UNOMI-880: Enhance CacheableTypeConfig with Builder Pattern
and Improved Type Management
new 16ccf00a5 UNOMI-880 Refactor RulesService to use
AbstractMultiTypeCachingService and improve inheritance handling
new af4acf745 UNOMI-879 Enhance Shell Dev Commands with Tenant ID Display
and ID Completion
new b1c316b72 UNOMI-880: Refactor ProfileServiceImpl to use
AbstractMultiTypeCachingService and improve property type management
new 4668a1677 UNOMI-880: Add services-common module with
AbstractMultiTypeCachingService and AbstractContextAwareService
new 0acb10497 UNOMI-139 Enhance JSON Schema Service with Multi-Tenant
Support and Improved Schema Management
new bdcafd776 UNOMI-883 Remove 'recommended' validation from
profilePropertyCondition JSON schema
new 0e6e4d195 UNOMI-139: Enhance Execution Context Management in REST Layer
new ab989b9d2 UNOMI-139: Enhance Groovy Actions Service with Multi-Tenant
Support
new d71434afb UNOMI-881 Enhance Profile Batch Update Documentation and
Goal Service Event Validation
new d58461230 UNOMI-873: Add Request Tracing Documentation with Explain
Parameter
new f3813a668 UNOMI-873: Add Complex Personalization Explain Parameter
Example
new 203f32d9d UNOMI-139: Enhance Multi-Tenancy Support in GraphQL API,
Groovy Actions and PropertyTypes - Make Groovy actions truly multi-tenant - Fix
for bug in property type loading with new caching service - Implement
tenant-specific GraphQL schema creation and caching - Add support for dynamic
schema registration based on tenant context - Introduce schema invalidation
mechanism for property type changes - Update GraphQLServlet to handle tenant
identification and schema retrieval [...]
new d3ecd6ff4 UNOMI-139 Add JaCoCo Plugin for Code Coverage and Refactor
GroovyActionsServiceImplTest
new 966515a22 UNOMI-139 Refactor GroovyActionsServiceImpl and
GroovyActionsServiceImplTest for Code Clarity
new 63b319dde UNOMI-139: Enhance JSON Schema Service with New Dependencies
and Schema Management Improvements
new da30e2790 UNOMI-139: Refactor GroovyActionsServiceImpl for Enhanced
Action Handling
new bec71d0bb UNOMI-875 Add Integration Test Options to Build Script
new 2deee15f4 UNOMI-139: Standardize API Key Header Naming Across Codebase
new 7b0901a30 UNOMI-877 Enhance Cluster Service with Server Information
Management
new 2385a8026 UNOMI-878 Refactor SchedulerServiceImpl for Enhanced Service
Tracking and Lifecycle Management
new de29def3f UNOMI-139 Refactor ElasticSearch and OpenSearch Persistence
Services to Standardize Tenant ID Handling
new c82b89b12 UNOMI-878 Enhance ConditionBuilder with New Query
Capabilities
new c9166e87a UNOMI-880 Refactor BaseIT and ContextServletIT for Enhanced
Testing and Configuration Management
new 3bc71812f UNOMI-888 Enhance Import/Export Configuration and Profile
Services with Detailed Documentation
new 323c31d0c UNOMI-139 Enhance Multi-Tenant Support in Import/Export
Configuration Services
new 18dfd5969 UNOMI-887 Enhance Build Script and Integration Tests with
Migration Test Options
new fe3206520 Remove encryption extension
new fb1f82e34 UNOMI-873 Integrate Tracing Capabilities Across Action and
Condition Evaluators
new 48a3fa7a5 UNOMI-884 Enhance Multi-Tenant Support and Audit Fields in
Migration Scripts
new 57880481a UNOMI-873 Add unomi-tracing-api dependency and integrate
TracerService in blueprint configurations
new 2b9b7602d UNOMI-884 Remove text fields that should instead be created
dynamically with the dynamic template settings.
new c13adfc45 UNOMI-892 Enhance Maven Build Configuration for Integration
Tests
new 7b874f6c3 UNOMI-884 Refactor Authentication Filter for Enhanced
Multi-Tenant Support
new 50057ae1b UNOMI-873 Fix tracing information handling in
ContextJsonEndpoint and EventsCollectorEndpoint by passing null instead of
response objects to endOperation method for improved clarity in operation
completion logging.
new abe6b388f UNOMI-680 GraphQL bug fixes - Added Metadata handling in
CreateOrUpdateSourceCommand to set metadata for new scopes. - Enhanced
datePropertyCondition in ConditionFactory to process OffsetDateTime and Date
types, including logging for type conversions and warnings for invalid types. -
Updated UnomiToGraphQLConverter to handle null type inputs gracefully. -
Improved error logging in GraphQLSchemaProvider for null object types.
new 084f6c130 UNOMI-877 Re-introduce cluster health check provider - Added
a new ClusterHealthCheckProvider class to monitor the status of the Unomi
cluster service. - Integrated caching for health check responses to optimize
performance. - Implemented methods to bind and unbind the ClusterService,
allowing dynamic updates to the health check status. - Enhanced logging for
better observability during health check execution.
new ccd7168a0 UNOMI-139 Multitenancy improvements and lots of correction
in unit and integration tests - Introduced a new method in the Tenant class to
filter active API keys based on revocation status and expiration date. - Added
unit tests for Tenant API key management to ensure correct functionality and
edge case handling. - Integrated ExecutionContextManager for improved security
context management during API key operations. - Updated various service
implementations to utilize th [...]
new b3a266fac UNOMI-139 Move persistence-specific condition builders to
their implementation bundles, removing complex dependencies.
new 696b2a135 UNOMI-878 Refactor Scheduler Service and Remove Unused Query
Builder Trackers
new 6f66de0f6 UNOMI-139 Enhance Configuration Management and Refactor
Persistence Services
new 1491ee1b7 UNOMI-828 Update OpenSearch Configuration and Refactor Task
Lock Management
new ea796ee71 UNOMI-139 Enhance Persistence Services with Tenant-Specific
Transformations and Logging
new a086228c9 UNOMI-873 Refactor tracing in action classes to use HashMap
for avoiding NPE
new 0ec47a124 UNOMI-828 Fix null check in OpenSearchPersistenceServiceImpl
to ensure both bucketsAggregationBuilder and bucketsContainerBuilder are
validated before proceeding with aggregation logic.
new 8469eab68 UNOMI-897 Enhance Groovy Actions Service with
Pre-compilation and Metadata Management
new c26166234 UNOMI-139 Add V2/V3 API Compatibility Guide and Document Key
Differences
The 116 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.