Skip to content

Commit 8465799

Browse files
authored
Merge pull request #36 from splitio/3.5.9-rbs-support-harnessmode
Update version to 3.5.9 and add rule-based segment support
2 parents edcd6c4 + 03e2f50 commit 8465799

5 files changed

Lines changed: 27 additions & 3 deletions

File tree

CHANGES.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@ CHANGELOG
33

44
This file tracks the version history and changes made to the Split/Harness FME Python API Client library.
55

6+
3.5.9 (May 21, 2026)
7+
--------------------
8+
Bug Fixes:
9+
- Added rule-based segment support in Harness mode
10+
- HarnessApiClient now exposes rule_based_segments and rule_based_segment_definitions
11+
- These use the existing RuleBasedSegment and RuleBasedSegmentDefinition microclients with Harness x-api-key authentication
12+
- Added Harness mode coverage for the rule-based segment client properties
13+
614
3.5.8 (December 10, 2025)
715
-------------------------
816
Features:

pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "splitapiclient"
7-
version = "3.5.8"
7+
version = "3.5.9"
88
license = "Apache-2.0"
99
description = "This Python Library provides full support for Split REST Admin API, allow creating, deleting and editing Environments, Splits, Split Definitions, Segments, Segment Keys, Users, Groups, API Keys, Change Requests, Attributes and Identities"
1010
classifiers = [
@@ -13,7 +13,6 @@ classifiers = [
1313
"Development Status :: 5 - Production/Stable",
1414
"Environment :: Console",
1515
"Intended Audience :: Developers",
16-
"Programming Language :: Python :: 3",
1716
"Topic :: Software Development :: Libraries",
1817
]
1918
authors = [

splitapiclient/main/harness_apiclient.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
from splitapiclient.microclients import SplitDefinitionMicroClient
1111
from splitapiclient.microclients import SegmentMicroClient
1212
from splitapiclient.microclients import SegmentDefinitionMicroClient
13+
from splitapiclient.microclients import RuleBasedSegmentMicroClient
14+
from splitapiclient.microclients import RuleBasedSegmentDefinitionMicroClient
1315
from splitapiclient.microclients import WorkspaceMicroClient
1416
from splitapiclient.microclients import IdentityMicroClient
1517
from splitapiclient.microclients import AttributeMicroClient
@@ -106,6 +108,8 @@ def __init__(self, config):
106108
self._split_definition_client = SplitDefinitionMicroClient(split_http_client)
107109
self._segment_client = SegmentMicroClient(split_http_client)
108110
self._segment_definition_client = SegmentDefinitionMicroClient(split_http_client)
111+
self._rule_based_segment_client = RuleBasedSegmentMicroClient(split_http_client)
112+
self._rule_based_segment_definition_client = RuleBasedSegmentDefinitionMicroClient(split_http_client)
109113
self._large_segment_client = LargeSegmentMicroClient(split_http_client)
110114
self._large_segment_definition_client = LargeSegmentDefinitionMicroClient(split_http_client)
111115
self._workspace_client = WorkspaceMicroClient(split_http_client)
@@ -150,6 +154,14 @@ def segments(self):
150154
@property
151155
def segment_definitions(self):
152156
return self._segment_definition_client
157+
158+
@property
159+
def rule_based_segments(self):
160+
return self._rule_based_segment_client
161+
162+
@property
163+
def rule_based_segment_definitions(self):
164+
return self._rule_based_segment_definition_client
153165

154166
@property
155167
def large_segments(self):

splitapiclient/tests/main/test_harness_apiclient_resources.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from splitapiclient.microclients.harness import TokenMicroClient, HarnessApiKeyMicroClient, ServiceAccountMicroClient
99
from splitapiclient.microclients.harness import HarnessUserMicroClient, HarnessGroupMicroClient, RoleMicroClient
1010
from splitapiclient.microclients.harness import ResourceGroupMicroClient, RoleAssignmentMicroClient, HarnessProjectMicroClient
11+
from splitapiclient.microclients import RuleBasedSegmentMicroClient, RuleBasedSegmentDefinitionMicroClient
1112

1213

1314
class TestHarnessApiClientResources:
@@ -37,6 +38,8 @@ def test_harness_resource_properties(self, mocker):
3738
assert isinstance(client.resource_group, ResourceGroupMicroClient)
3839
assert isinstance(client.role_assignment, RoleAssignmentMicroClient)
3940
assert isinstance(client.harness_project, HarnessProjectMicroClient)
41+
assert isinstance(client.rule_based_segments, RuleBasedSegmentMicroClient)
42+
assert isinstance(client.rule_based_segment_definitions, RuleBasedSegmentDefinitionMicroClient)
4043

4144
def test_harness_resource_operations(self, mocker):
4245
'''
@@ -562,6 +565,8 @@ def test_harness_authentication_modes(self, mocker):
562565
assert hasattr(client, 'resource_group')
563566
assert hasattr(client, 'role_assignment')
564567
assert hasattr(client, 'harness_project')
568+
assert hasattr(client, 'rule_based_segments')
569+
assert hasattr(client, 'rule_based_segment_definitions')
565570

566571
def test_harness_mode_requires_harness_token(self, mocker):
567572
'''

splitapiclient/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '3.5.8'
1+
__version__ = '3.5.9'

0 commit comments

Comments
 (0)