Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
4cd936c
Bump actions/setup-go from 5 to 6
dependabot[bot] Sep 15, 2025
b3cd653
Bump golang.org/x/net from 0.34.0 to 0.38.0
dependabot[bot] Oct 21, 2025
c919f12
Bump golang.org/x/crypto from 0.32.0 to 0.45.0
dependabot[bot] Nov 20, 2025
dc9d954
[FME-12436] Updated commons version
nmayorsplit Jan 19, 2026
92a6f85
Updated log message
nmayorsplit Jan 19, 2026
18f3c9c
Merge pull request #57 from splitio/FME-12436
nmayorsplit Jan 19, 2026
ef3dfd1
Added fallback treatment
nmayorsplit Jan 20, 2026
ff74e37
Merge pull request #58 from splitio/FME-12438
nmayorsplit Jan 20, 2026
f3c1ffd
Add impression properties in treatments
nmayorsplit Jan 20, 2026
a4b303e
Merge pull request #59 from splitio/FME-12498
nmayorsplit Jan 21, 2026
230dcb4
Added test cases for prerequistes
nmayorsplit Jan 21, 2026
e3485a1
Merge pull request #60 from splitio/FME-12497
nmayorsplit Jan 21, 2026
b5a9e87
Updated changelog and version
nmayorsplit Jan 21, 2026
2a0d9ab
Added tests for rule-based
nmayorsplit Jan 21, 2026
6be48e6
Merge pull request #56 from splitio/dependabot/go_modules/golang.org/…
nmayorsplit Jan 22, 2026
c0ad74a
Merge branch 'FME-8315' into dependabot/go_modules/golang.org/x/net-0…
nmayorsplit Jan 22, 2026
c9221b9
Merge pull request #54 from splitio/dependabot/go_modules/golang.org/…
nmayorsplit Jan 22, 2026
4d898f8
Merge branch 'main' into dependabot/github_actions/actions/setup-go-6
nmayorsplit Jan 22, 2026
0e6e3f5
Merge pull request #52 from splitio/dependabot/github_actions/actions…
nmayorsplit Jan 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
script: core.setFailed('[ERROR] Tag already exists.')

- name: Setup Go version
uses: actions/setup-go@v5
uses: actions/setup-go@v6
with:
go-version: '^1.20.7'

Expand Down
6 changes: 6 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
1.7.0 (Jan 21, 2026)
- Added a new optional argument to the client `getTreatment` methods to allow passing additional evaluation options, such as a map of properties to append to the generated impressions sent to Split backend. Read more in our docs.
- Added new configuration for Fallback Treatments, which allows setting a treatment value and optional config to be returned in place of "control", either globally or by flag. Read more in our docs.
- Added support for rule-based segments. These segments determine membership at runtime by evaluating their configured rules against the user attributes provided to the SDK.
- Added support for feature flag prerequisites. This allows customers to define dependency conditions between flags, which are evaluated before any allowlists or targeting rules.

1.6.0 (Feb 5, 2025)
- Added Health & Readiness endpoints.
- Fixing vulnerabilities.
Expand Down
2 changes: 1 addition & 1 deletion external/commons/mocks/evaluator.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package mocks

import (
"github.com/splitio/go-split-commons/v6/engine/evaluator"
"github.com/splitio/go-split-commons/v9/engine/evaluator"
"github.com/stretchr/testify/mock"
)

Expand Down
4 changes: 2 additions & 2 deletions external/commons/mocks/impmanager.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package mocks

import (
"github.com/splitio/go-split-commons/v6/dtos"
"github.com/splitio/go-split-commons/v6/provisional"
"github.com/splitio/go-split-commons/v9/dtos"
"github.com/splitio/go-split-commons/v9/provisional"
"github.com/stretchr/testify/mock"
)

Expand Down
4 changes: 2 additions & 2 deletions external/commons/mocks/imprecorder.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package mocks

import (
"github.com/splitio/go-split-commons/v6/dtos"
"github.com/splitio/go-split-commons/v6/service"
"github.com/splitio/go-split-commons/v9/dtos"
"github.com/splitio/go-split-commons/v9/service"
"github.com/stretchr/testify/mock"
)

Expand Down
14 changes: 12 additions & 2 deletions external/commons/mocks/splitstorage.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package mocks

import (
"github.com/splitio/go-split-commons/v6/dtos"
"github.com/splitio/go-split-commons/v6/storage"
"github.com/splitio/go-split-commons/v9/dtos"
"github.com/splitio/go-split-commons/v9/storage"
"github.com/splitio/go-toolkit/v5/datastructures/set"
"github.com/stretchr/testify/mock"
)
Expand Down Expand Up @@ -72,4 +72,14 @@ func (m *SplitStorageMock) LargeSegmentNames() *set.ThreadUnsafeSet {
return m.Called().Get(0).(*set.ThreadUnsafeSet)
}

func (m *SplitStorageMock) ReplaceAll(toAdd []dtos.SplitDTO, changeNumber int64) error {
args := m.Called(toAdd, changeNumber)
return args.Error(0)
}

func (m *SplitStorageMock) RuleBasedSegmentNames() *set.ThreadUnsafeSet {
args := m.Called()
return args.Get(0).(*set.ThreadUnsafeSet)
}

var _ storage.SplitStorage = (*SplitStorageMock)(nil)
18 changes: 9 additions & 9 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
module github.com/splitio/splitd

go 1.23.6
go 1.24.0

require (
github.com/gin-gonic/gin v1.10.0
github.com/splitio/go-split-commons/v6 v6.1.0
github.com/splitio/go-toolkit/v5 v5.4.0
github.com/stretchr/testify v1.9.0
github.com/splitio/go-split-commons/v9 v9.1.0
github.com/splitio/go-toolkit/v5 v5.4.1
github.com/stretchr/testify v1.11.1
github.com/vmihailenco/msgpack/v5 v5.3.5
golang.org/x/sync v0.10.0
golang.org/x/sync v0.18.0
gopkg.in/yaml.v3 v3.0.1
)

Expand Down Expand Up @@ -39,10 +39,10 @@ require (
github.com/ugorji/go/codec v1.2.12 // indirect
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
golang.org/x/arch v0.8.0 // indirect
golang.org/x/crypto v0.32.0 // indirect
golang.org/x/crypto v0.45.0 // indirect
golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect
golang.org/x/net v0.34.0 // indirect
golang.org/x/sys v0.29.0 // indirect
golang.org/x/text v0.21.0 // indirect
golang.org/x/net v0.47.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/text v0.31.0 // indirect
google.golang.org/protobuf v1.34.1 // indirect
)
31 changes: 16 additions & 15 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,10 @@ github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/splitio/go-split-commons/v6 v6.1.0 h1:k3mwr12DF6gbEaV8XXU/tSAQlPkIEuzIgTEneYhGg2I=
github.com/splitio/go-split-commons/v6 v6.1.0/go.mod h1:D/XIY/9Hmfk9ivWsRsJVp439kEdmHbzUi3PKzQQDOXY=
github.com/splitio/go-toolkit/v5 v5.4.0 h1:g5WFpRhQomnXCmvfsNOWV4s5AuUrWIZ+amM68G8NBKM=
github.com/splitio/go-toolkit/v5 v5.4.0/go.mod h1:xYhUvV1gga9/1029Wbp5pjnR6Cy8nvBpjw99wAbsMko=
github.com/splitio/go-split-commons/v9 v9.1.0 h1:sfmPMuEDTtbIOJ+MeWNbfYl2/xKB/25d4/J95OUD+X0=
github.com/splitio/go-split-commons/v9 v9.1.0/go.mod h1:gJuaKo04Swlh4w9C1b2jBAqAdFxEd/Vpd8jnFINOeDY=
github.com/splitio/go-toolkit/v5 v5.4.1 h1:srTyvDBJZMUcJ/KiiQDMyjCuELVgTBh2TGRVn0sOXEE=
github.com/splitio/go-toolkit/v5 v5.4.1/go.mod h1:SifzysrOVDbzMcOE8zjX02+FG5az4FrR3Us/i5SeStw=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
Expand All @@ -67,8 +67,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
github.com/twmb/murmur3 v1.1.6 h1:mqrRot1BRxm+Yct+vavLMou2/iJt0tNVTTC0QoIjaZg=
Expand All @@ -82,20 +83,20 @@ github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc=
golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys=
golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI=
golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo=
golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
Expand Down
2 changes: 1 addition & 1 deletion splitio/link/client/types/interfaces.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package types

import (
"github.com/splitio/go-split-commons/v6/dtos"
"github.com/splitio/go-split-commons/v9/dtos"
"github.com/splitio/splitd/splitio/sdk"
)

Expand Down
2 changes: 1 addition & 1 deletion splitio/link/client/v1/impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package v1
import (
"fmt"

"github.com/splitio/go-split-commons/v6/dtos"
"github.com/splitio/go-split-commons/v9/dtos"
"github.com/splitio/go-toolkit/v5/logging"
"github.com/splitio/splitd/splitio"
"github.com/splitio/splitd/splitio/common/lang"
Expand Down
2 changes: 1 addition & 1 deletion splitio/link/client/v1/impl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package v1
import (
"testing"

"github.com/splitio/go-split-commons/v6/dtos"
"github.com/splitio/go-split-commons/v9/dtos"
"github.com/splitio/go-toolkit/v5/logging"
"github.com/splitio/splitd/splitio/common/lang"
v1 "github.com/splitio/splitd/splitio/link/protocol/v1"
Expand Down
2 changes: 1 addition & 1 deletion splitio/link/service/v1/clientmgr_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"io"
"testing"

"github.com/splitio/go-split-commons/v6/dtos"
"github.com/splitio/go-split-commons/v9/dtos"
"github.com/splitio/go-toolkit/v5/logging"
"github.com/splitio/splitd/splitio/common/lang"
"github.com/splitio/splitd/splitio/link/protocol"
Expand Down
26 changes: 14 additions & 12 deletions splitio/sdk/conf/conf.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ package conf
import (
"time"

"github.com/splitio/go-split-commons/v6/conf"
"github.com/splitio/go-split-commons/v6/dtos"
"github.com/splitio/go-split-commons/v6/flagsets"
"github.com/splitio/go-split-commons/v6/service/api/specs"
"github.com/splitio/go-split-commons/v9/conf"
"github.com/splitio/go-split-commons/v9/dtos"
"github.com/splitio/go-split-commons/v9/flagsets"
"github.com/splitio/go-split-commons/v9/service/api/specs"
)

const (
Expand All @@ -15,14 +15,15 @@ const (
)

type Config struct {
LabelsEnabled bool
StreamingEnabled bool
Splits Splits
Segments Segments
Impressions Impressions
Events Events
URLs URLs
FlagSetsFilter []string
LabelsEnabled bool
StreamingEnabled bool
Splits Splits
Segments Segments
Impressions Impressions
Events Events
URLs URLs
FlagSetsFilter []string
FallbackTreatment dtos.FallbackTreatmentConfig
}

type Splits struct {
Expand Down Expand Up @@ -81,6 +82,7 @@ func (c *Config) ToAdvancedConfig() *conf.AdvancedConfig {
d.ImpressionsQueueSize = c.Impressions.QueueSize
d.AuthSpecVersion = specs.FLAG_V1_1
d.FlagsSpecVersion = specs.FLAG_V1_1
d.FallbackTreatment = c.FallbackTreatment

return &d
}
Expand Down
Loading