Skip to content

Commit

Permalink
Instantiate agg TCF2 config in handler instead of in exchange (#2746)
Browse files Browse the repository at this point in the history
  • Loading branch information
bsardo authored May 11, 2023
1 parent efb7963 commit d31ff1b
Show file tree
Hide file tree
Showing 10 changed files with 84 additions and 207 deletions.
4 changes: 4 additions & 0 deletions endpoints/openrtb2/amp_auction.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
"github.com/prebid/prebid-server/config"
"github.com/prebid/prebid-server/errortypes"
"github.com/prebid/prebid-server/exchange"
"github.com/prebid/prebid-server/gdpr"
"github.com/prebid/prebid-server/hooks"
"github.com/prebid/prebid-server/metrics"
"github.com/prebid/prebid-server/openrtb_ext"
Expand Down Expand Up @@ -219,6 +220,8 @@ func (deps *endpointDeps) AmpAuction(w http.ResponseWriter, r *http.Request, _ h
return
}

tcf2Config := gdpr.NewTCF2Config(deps.cfg.GDPR.TCF2, account.GDPR)

secGPC := r.Header.Get("Sec-GPC")

auctionRequest := &exchange.AuctionRequest{
Expand All @@ -235,6 +238,7 @@ func (deps *endpointDeps) AmpAuction(w http.ResponseWriter, r *http.Request, _ h
PubID: labels.PubID,
HookExecutor: hookExecutor,
QueryParams: r.URL.Query(),
TCF2Config: tcf2Config,
}

response, err := deps.ex.HoldAuction(ctx, auctionRequest, nil)
Expand Down
4 changes: 4 additions & 0 deletions endpoints/openrtb2/auction.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import (
"github.com/prebid/prebid-server/currency"
"github.com/prebid/prebid-server/errortypes"
"github.com/prebid/prebid-server/exchange"
"github.com/prebid/prebid-server/gdpr"
"github.com/prebid/prebid-server/hooks/hookexecution"
"github.com/prebid/prebid-server/metrics"
"github.com/prebid/prebid-server/openrtb_ext"
Expand Down Expand Up @@ -186,6 +187,8 @@ func (deps *endpointDeps) Auction(w http.ResponseWriter, r *http.Request, _ http
return
}

tcf2Config := gdpr.NewTCF2Config(deps.cfg.GDPR.TCF2, account.GDPR)

ctx := context.Background()

timeout := deps.cfg.AuctionTimeouts.LimitAuctionTimeout(time.Duration(req.TMax) * time.Millisecond)
Expand Down Expand Up @@ -230,6 +233,7 @@ func (deps *endpointDeps) Auction(w http.ResponseWriter, r *http.Request, _ http
BidderImpReplaceImpID: bidderImpReplaceImp,
PubID: labels.PubID,
HookExecutor: hookExecutor,
TCF2Config: tcf2Config,
}
response, err := deps.ex.HoldAuction(ctx, auctionRequest, nil)
ao.Request = req.BidRequest
Expand Down
5 changes: 0 additions & 5 deletions endpoints/openrtb2/auction_benchmark_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import (
"github.com/prebid/prebid-server/currency"
"github.com/prebid/prebid-server/exchange"
"github.com/prebid/prebid-server/experiment/adscert"
"github.com/prebid/prebid-server/gdpr"
"github.com/prebid/prebid-server/hooks"
metricsConfig "github.com/prebid/prebid-server/metrics/config"
"github.com/prebid/prebid-server/openrtb_ext"
Expand Down Expand Up @@ -82,9 +81,6 @@ func BenchmarkOpenrtbEndpoint(b *testing.B) {
gdprPermsBuilder := fakePermissionsBuilder{
permissions: &fakePermissions{},
}.Builder
tcf2ConfigBuilder := fakeTCF2ConfigBuilder{
cfg: gdpr.NewTCF2Config(config.TCF2{}, config.AccountGDPR{}),
}.Builder

exchange := exchange.NewExchange(
adapters,
Expand All @@ -94,7 +90,6 @@ func BenchmarkOpenrtbEndpoint(b *testing.B) {
nilMetrics,
infos,
gdprPermsBuilder,
tcf2ConfigBuilder,
currency.NewRateConverter(&http.Client{}, "", time.Duration(0)),
empty_fetcher.EmptyFetcher{},
&adscert.NilSigner{},
Expand Down
12 changes: 0 additions & 12 deletions endpoints/openrtb2/test_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -1217,9 +1217,6 @@ func buildTestExchange(testCfg *testConfigValues, adapterMap map[openrtb_ext.Bid
gdprPermsBuilder := fakePermissionsBuilder{
permissions: &fakePermissions{},
}.Builder
tcf2ConfigBuilder := fakeTCF2ConfigBuilder{
cfg: gdpr.NewTCF2Config(config.TCF2{}, config.AccountGDPR{}),
}.Builder

testExchange := exchange.NewExchange(adapterMap,
&wellBehavedCache{},
Expand All @@ -1228,7 +1225,6 @@ func buildTestExchange(testCfg *testConfigValues, adapterMap map[openrtb_ext.Bid
met,
bidderInfos,
gdprPermsBuilder,
tcf2ConfigBuilder,
mockCurrencyConverter,
mockFetcher,
&adscert.NilSigner{},
Expand Down Expand Up @@ -1415,14 +1411,6 @@ func (fpb fakePermissionsBuilder) Builder(gdpr.TCF2ConfigReader, gdpr.RequestInf
return fpb.permissions
}

type fakeTCF2ConfigBuilder struct {
cfg gdpr.TCF2ConfigReader
}

func (fcr fakeTCF2ConfigBuilder) Builder(hostConfig config.TCF2, accountConfig config.AccountGDPR) gdpr.TCF2ConfigReader {
return fcr.cfg
}

type fakePermissions struct {
}

Expand Down
6 changes: 2 additions & 4 deletions exchange/exchange.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ type exchange struct {
cache prebid_cache_client.Client
cacheTime time.Duration
gdprPermsBuilder gdpr.PermissionsBuilder
tcf2ConfigBuilder gdpr.TCF2ConfigBuilder
currencyConverter *currency.RateConverter
externalURL string
gdprDefaultValue gdpr.Signal
Expand Down Expand Up @@ -126,7 +125,7 @@ func (randomDeduplicateBidBooleanGenerator) Generate() bool {
return rand.Intn(100) < 50
}

func NewExchange(adapters map[openrtb_ext.BidderName]AdaptedBidder, cache prebid_cache_client.Client, cfg *config.Configuration, syncersByBidder map[string]usersync.Syncer, metricsEngine metrics.MetricsEngine, infos config.BidderInfos, gdprPermsBuilder gdpr.PermissionsBuilder, tcf2CfgBuilder gdpr.TCF2ConfigBuilder, currencyConverter *currency.RateConverter, categoriesFetcher stored_requests.CategoryFetcher, adsCertSigner adscert.Signer) Exchange {
func NewExchange(adapters map[openrtb_ext.BidderName]AdaptedBidder, cache prebid_cache_client.Client, cfg *config.Configuration, syncersByBidder map[string]usersync.Syncer, metricsEngine metrics.MetricsEngine, infos config.BidderInfos, gdprPermsBuilder gdpr.PermissionsBuilder, currencyConverter *currency.RateConverter, categoriesFetcher stored_requests.CategoryFetcher, adsCertSigner adscert.Signer) Exchange {
bidderToSyncerKey := map[string]string{}
for bidder, syncer := range syncersByBidder {
bidderToSyncerKey[bidder] = syncer.Key()
Expand All @@ -147,7 +146,6 @@ func NewExchange(adapters map[openrtb_ext.BidderName]AdaptedBidder, cache prebid
me: metricsEngine,
privacyConfig: privacyConfig,
gdprPermsBuilder: gdprPermsBuilder,
tcf2ConfigBuilder: tcf2CfgBuilder,
hostSChainNode: cfg.HostSChainNode,
bidderInfo: infos,
}
Expand All @@ -162,7 +160,6 @@ func NewExchange(adapters map[openrtb_ext.BidderName]AdaptedBidder, cache prebid
currencyConverter: currencyConverter,
externalURL: cfg.ExternalURL,
gdprPermsBuilder: gdprPermsBuilder,
tcf2ConfigBuilder: tcf2CfgBuilder,
me: metricsEngine,
gdprDefaultValue: gdprDefaultValue,
privacyConfig: privacyConfig,
Expand Down Expand Up @@ -194,6 +191,7 @@ type AuctionRequest struct {
Warnings []error
GlobalPrivacyControlHeader string
ImpExtInfoMap map[string]ImpExtInfo
TCF2Config gdpr.TCF2ConfigReader

// LegacyLabels is included here for temporary compatibility with cleanOpenRTBRequests
// in HoldAuction until we get to factoring it away. Do not use for anything new.
Expand Down
Loading

0 comments on commit d31ff1b

Please sign in to comment.