Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge master #6

Merged
merged 44 commits into from
Jul 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
afa7a2e
Prebid Server prepare release 1.121.0
SerhiiNahornyi Jun 22, 2023
01ed81e
Prebid Server prepare for next development iteration
SerhiiNahornyi Jun 22, 2023
f23176f
Motorik: Add bidder (#2449)
SerhiiNahornyi Jun 26, 2023
5b80807
ZetaGlobalSsp: Remove pbs-enforces-ccpa property (#2454)
And1sS Jun 26, 2023
f72617c
Tests: Fix for info bidders spec (#2442)
marki1an Jun 26, 2023
da209e0
Core: Update README.md for proto part (#2399)
And1sS Jun 26, 2023
3063cc8
Core: Add `gpc` field (#2450)
CTMBNara Jun 27, 2023
bbdff29
Core: Update coop-sync doc (#2453)
And1sS Jun 27, 2023
9103d38
MgidX: Add bidder (#2457)
SerhiiNahornyi Jun 27, 2023
4b0aa71
Rise: Add bidder (#2455)
SerhiiNahornyi Jun 27, 2023
255f6dc
Core: Fix geo rule config matcher (#2461)
CTMBNara Jun 29, 2023
1f1fead
Core: Always populate `country` and `region` on lookup (#2459)
CTMBNara Jun 29, 2023
8b40c03
Yandex: Endpoint update (#2463)
DridgerVE Jun 29, 2023
4b9fb72
Core: Add `gpc` condition (#2458)
CTMBNara Jun 29, 2023
8340d03
Prebid Server prepare release 1.122.0
SerhiiNahornyi Jun 30, 2023
51c7774
Prebid Server prepare for next development iteration
SerhiiNahornyi Jun 30, 2023
150aff9
Logs: Add filter of "Connection reset by peer" exceptions (#2411)
And1sS Jun 30, 2023
7ff1403
UCFunnel: added note about requiring registration (#2432)
bretg Jun 30, 2023
d00d2bd
SmartAdServer: Added native support (#2446)
EmanueleSimonelli Jun 30, 2023
879e221
Sovrn: Gpp support (#2439)
dmitrybor Jun 30, 2023
b56b4b1
Adhese: openrtb2 endpoint (#2447)
karol-adhese Jul 3, 2023
e073028
Pubmatic: Usersync gpp support (#2470)
SerhiiNahornyi Jul 3, 2023
e28c7b3
Preciso: Add adapter (#2433)
PrecisoSRL Jul 4, 2023
128cc0f
Brightroll: Remove bidder. (#2474)
radubarbos Jul 4, 2023
6bb02c3
Ortb: Add missing fields (#2343)
And1sS Jul 4, 2023
a47ac7a
Dependabot: Bump jetty-server (#2430)
dependabot[bot] Jul 5, 2023
6400367
TCF: Vendor list updates (#2441)
And1sS Jul 5, 2023
5e45ac6
Prebid Server prepare release 1.123.0
SerhiiNahornyi Jul 7, 2023
3f455ef
Prebid Server prepare for next development iteration
SerhiiNahornyi Jul 7, 2023
fc90e77
Bump h2 from 2.1.214 to 2.2.220 (#2492)
dependabot[bot] Jul 11, 2023
96d8ba5
Synacormedia: Renames to "imds", GPP macros (#2371)
ecammit Jul 11, 2023
c9a335c
Tests: Flaky integration tests fix (#2488)
And1sS Jul 12, 2023
1859537
Bluesea: Add adapter (#2493)
SerhiiNahornyi Jul 12, 2023
f46839a
CodeStyle: Add checkstyle rule for mandatory final keyword (#2475)
And1sS Jul 12, 2023
d0b760c
Tests: Add functional tests for `/setuid` endpoint (#2490)
marki1an Jul 12, 2023
cf1aff7
ЕripleliftЖ Add gpp, gpp_sid support (#2497)
marki1an Jul 13, 2023
31a2a14
IX: Add gpp, gpp_sid support (#2498)
marki1an Jul 13, 2023
d45ac88
IMDS: Added sync note (#2500)
bretg Jul 13, 2023
f137baa
Consumable: Add `gpp`, `gpp_sid` support (#2499)
marki1an Jul 13, 2023
fa932f3
Aidem: Bidder implementation (#2496)
SerhiiNahornyi Jul 13, 2023
32256d6
Bugfix: Update connection reset filtering expression (#2491)
Net-burst Jul 13, 2023
8721978
Tests: Fix for currency conversion (#2436)
marki1an Jul 13, 2023
ed01392
Prebid Server prepare release 1.124.0
SerhiiNahornyi Jul 14, 2023
3ebefb8
Prebid Server prepare for next development iteration
SerhiiNahornyi Jul 14, 2023
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ target/
.DS_Store

.allure/
src/main/proto/
3 changes: 3 additions & 0 deletions checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@
<module name="ConstantName">
<property name="format" value="^([A-Z][A-Z0-9]*(_[A-Z0-9]+)*|(.*?)[l,L]ogger)$"/>
</module>
<module name="FinalLocalVariable">
<property name="tokens" value="VARIABLE_DEF"/>
</module>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName"/>
Expand Down
2 changes: 1 addition & 1 deletion docs/application-settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ There are two ways to configure application settings: database and file. This do
- `analytics.modules.<module-name>.*` - space for `module-name` analytics module specific configuration, may be of any shape
- `cookie-sync.default-timeout-ms` - overrides host level config
- `cookie-sync.default-limit` - if the "limit" isn't specified in the `/cookie_sync` request, this is what to use
- `cookie-sync.pri` - a comma-separated list of prioritized cookie families
- `cookie-sync.pri` - a list of prioritized bidder codes
- `cookie-sync.max-limit` - if the "limit" is specified in the `/cookie_sync` request, it can't be greater than this
value
- `cookie-sync.coop-sync.default` - if the "coopSync" value isn't specified in the `/cookie_sync` request, use this
Expand Down
16 changes: 16 additions & 0 deletions docs/build.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,19 @@ mvn clean package
```bash
mvn clean package --file extra/pom.xml
```

## Common problems
For IntelliJ IDEA users, if IDEA can't resolve proto classes:
First of all, you need to compile these files. They are compiled from .proto files located in src.main.proto. This can be done by running the mvn protobuf:compile command in your terminal or by clicking in IntelliJ IDEA:
Maven > prebid-server > Plugins > protobuf > protobuf:compile.

This step is also performed during the compile (and test-compile for tests) phase of Maven if you build the app using Maven directly.

After that, you can build and run the application via IntelliJ IDEA. However, IntelliJ IDEA will not recognize these files with its default settings yet, and it will still report an error even though the application can be compiled. This is because intellisense does not introspect large files by default, and the compiled classes from proto files are much larger than the default classes.

Here is how to resolve this:
In IntelliJ IDEA, click `Help > Edit custom properties...` and add modify any of these properties(in kilobytes):
`idea.max.content.load.filesize=your-value-here`(for example, `idea.max.content.load.filesize=200000`) - increases max file size that IDEA is able to open
`idea.max.intellisense.filesize=your-value-here`(for example, `idea.max.intellisense.filesize=200000`) - increases max file size for coding assistance and design-time code inspection.

You can find more information about these properties here: https://www.jetbrains.com/help/objc/configuring-file-size-limit.html
6 changes: 3 additions & 3 deletions extra/bundle/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.prebid</groupId>
<artifactId>prebid-server-aggregator</artifactId>
<version>1.121.0-SNAPSHOT</version>
<version>1.125.0-SNAPSHOT</version>
<relativePath>../../extra/pom.xml</relativePath>
</parent>

Expand Down Expand Up @@ -74,12 +74,12 @@
<dependency>
<groupId>org.prebid</groupId>
<artifactId>prebid-server</artifactId>
<version>1.121.0-SNAPSHOT</version>
<version>1.125.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.prebid.server.hooks.modules</groupId>
<artifactId>ortb2-blocking</artifactId>
<version>1.121.0-SNAPSHOT</version>
<version>1.125.0-SNAPSHOT</version>
</dependency>
</dependencies>

Expand Down
2 changes: 1 addition & 1 deletion extra/modules/ortb2-blocking/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.prebid.server.hooks.modules</groupId>
<artifactId>all-modules</artifactId>
<version>1.121.0-SNAPSHOT</version>
<version>1.125.0-SNAPSHOT</version>
</parent>

<artifactId>ortb2-blocking</artifactId>
Expand Down
4 changes: 2 additions & 2 deletions extra/modules/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.prebid</groupId>
<artifactId>prebid-server-aggregator</artifactId>
<version>1.121.0-SNAPSHOT</version>
<version>1.125.0-SNAPSHOT</version>
<relativePath>../../extra/pom.xml</relativePath>
</parent>

Expand All @@ -27,7 +27,7 @@
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>

<prebid-server.version>1.121.0-SNAPSHOT</prebid-server.version>
<prebid-server.version>1.125.0-SNAPSHOT</prebid-server.version>

<lombok.version>1.18.22</lombok.version>

Expand Down
2 changes: 1 addition & 1 deletion extra/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>org.prebid</groupId>
<artifactId>prebid-server-aggregator</artifactId>
<version>1.121.0-SNAPSHOT</version>
<version>1.125.0-SNAPSHOT</version>
<packaging>pom</packaging>

<scm>
Expand Down
6 changes: 3 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.prebid</groupId>
<artifactId>prebid-server-aggregator</artifactId>
<version>1.121.0-SNAPSHOT</version>
<version>1.125.0-SNAPSHOT</version>
<relativePath>extra/pom.xml</relativePath>
</parent>

Expand Down Expand Up @@ -66,9 +66,9 @@
<assertj.version>3.24.2</assertj.version>
<wiremock.version>2.35.0</wiremock.version>
<awaitility.version>4.2.0</awaitility.version>
<jetty.version>9.4.48.v20220622</jetty.version>
<jetty.version>9.4.51.v20230217</jetty.version>
<restassured.version>4.4.0</restassured.version>
<h2.version>2.1.214</h2.version>
<h2.version>2.2.220</h2.version>
<spock.version>2.4-M1-groovy-3.0</spock.version>
<groovy.version>3.0.14</groovy.version>
<testcontainers.version>1.17.4</testcontainers.version>
Expand Down
2 changes: 2 additions & 0 deletions sample/prebid-config-db.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ gdpr:
vendorlist:
v2:
cache-dir: /var/tmp/vendor2
v3:
cache-dir: /var/tmp/vendor3
admin-endpoints:
logging-changelevel:
enabled: true
Expand Down
2 changes: 2 additions & 0 deletions sample/prebid-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ gdpr:
vendorlist:
v2:
cache-dir: /var/tmp/vendor2
v3:
cache-dir: /var/tmp/vendor3
admin-endpoints:
logging-changelevel:
enabled: true
Expand Down
2 changes: 2 additions & 0 deletions src/main/docker/application.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@ gdpr:
vendorlist:
v2:
cache-dir: /app/prebid-server/data/vendorlist-v2
v3:
cache-dir: /app/prebid-server/data/vendorlist-v3
6 changes: 6 additions & 0 deletions src/main/java/com/iab/openrtb/request/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,12 @@ public class App {
*/
List<String> kwarray;

/**
* A domain to be used for inventory authorization in the case of inventory
* sharing arrangements between an app owner and content owner.
*/
String inventorypartnerdomain;

/**
* Placeholder for exchange-specific extensions to OpenRTB.
*/
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/com/iab/openrtb/request/BidRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ public class BidRequest {
*/
App app;

/**
* This object should be included if the ad supported content is a Digital Out-Of-Home screen.
* A bid request with a DOOH object must not contain a site or app object.
*/
Dooh dooh;

/**
* Details via a {@link Device} object (Section 3.2.18) about the user’s device
* to which the impression will be delivered.
Expand Down
63 changes: 63 additions & 0 deletions src/main/java/com/iab/openrtb/request/Dooh.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package com.iab.openrtb.request;

import com.fasterxml.jackson.databind.JsonNode;
import lombok.Builder;
import lombok.Value;

import java.util.List;

/**
* This object should be included if the ad supported content is a Digital Out-Of-Home screen.
* A bid request with a DOOH object must not contain a site or app object.
* At a minimum, it is useful to provide id and/or venuetypeid, but this is not strictly required.
*/
@Value
@Builder
public class Dooh {

/**
* Exchange provided id for a placement or logical grouping of placements.
*/
String id;

/**
* Name of the dooh placement.
*/
String name;

/**
* The type of out-of-home venue. The taxonomy to be used is defined by the venuetax field.
* If no venuetax field is supplied, The OpenOOH Venue Taxonomy is assumed.
*/
List<String> venuetype;

/**
* The venue taxonomy in use.
*/
Integer venuetypetax;

/**
* Details about the publisher of the placement.
*/
Publisher publisher;

/**
* Domain of the inventory owner (e.g., “mysite.foo.com”)
*/
String domain;

/**
* Comma separated list of keywords about the DOOH placement.
*/
String keywords;

/**
* Details about the Content within the DOOH placement.
*/
Content content;

/**
* Placeholder for exchange-specific extensions to OpenRTB.
*/
JsonNode ext;
}
6 changes: 6 additions & 0 deletions src/main/java/com/iab/openrtb/request/Site.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,12 @@ public class Site {
*/
List<String> kwarray;

/**
* A domain to be used for inventory authorization in the case of inventory sharing
* arrangements between a site owner and content owner.
*/
String inventorypartnerdomain;

/**
* Placeholder for exchange-specific extensions to OpenRTB.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ protected Rule fromConfiguration(AccountActivityGeoRuleConfig ruleConfiguration,
condition != null ? setOf(condition.getComponentNames()) : null,
sidsMatched(condition, gppContext.scope().getSectionsIds()),
condition != null ? geoCodes(condition.getGeoCodes()) : null,
condition != null ? condition.getGpc() : null,
allow);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package org.prebid.server.activity.infrastructure.payload;

public interface GpcActivityCallPayload extends ActivityCallPayload {

String gpc();
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,20 @@
import com.iab.openrtb.request.BidRequest;
import com.iab.openrtb.request.Device;
import com.iab.openrtb.request.Geo;
import com.iab.openrtb.request.Regs;
import lombok.Value;
import lombok.experimental.Accessors;
import lombok.experimental.Delegate;
import org.prebid.server.activity.infrastructure.payload.ActivityCallPayload;
import org.prebid.server.activity.infrastructure.payload.GeoActivityCallPayload;
import org.prebid.server.activity.infrastructure.payload.GpcActivityCallPayload;
import org.prebid.server.proto.openrtb.ext.request.ExtRegs;

import java.util.Optional;

@Accessors(fluent = true)
@Value(staticConstructor = "of")
public class BidRequestActivityCallPayload implements GeoActivityCallPayload {
public class BidRequestActivityCallPayload implements GeoActivityCallPayload, GpcActivityCallPayload {

@Delegate
ActivityCallPayload componentInfo;
Expand All @@ -35,4 +38,12 @@ public String region() {
.map(Geo::getRegion)
.orElse(null);
}

@Override
public String gpc() {
return Optional.ofNullable(bidRequest.getRegs())
.map(Regs::getExt)
.map(ExtRegs::getGpc)
.orElse(null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,20 @@
import lombok.experimental.Delegate;
import org.prebid.server.activity.infrastructure.payload.ActivityCallPayload;
import org.prebid.server.activity.infrastructure.payload.GeoActivityCallPayload;
import org.prebid.server.activity.infrastructure.payload.GpcActivityCallPayload;

@Accessors(fluent = true)
@Value(staticConstructor = "of")
public class GeoActivityCallPayloadImpl implements GeoActivityCallPayload {
public class PrivacyEnforcementServiceActivityCallPayload implements
GeoActivityCallPayload,
GpcActivityCallPayload {

@Delegate
ActivityCallPayload activityCallPayload;

String country;

String region;

String gpc;
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import org.prebid.server.activity.ComponentType;
import org.prebid.server.activity.infrastructure.payload.ActivityCallPayload;
import org.prebid.server.activity.infrastructure.payload.GeoActivityCallPayload;
import org.prebid.server.activity.infrastructure.payload.GpcActivityCallPayload;

import java.util.List;
import java.util.Set;
Expand All @@ -14,24 +15,28 @@ public final class GeoRule implements Rule {
private final ComponentRule componentRule;
private final boolean sidsMatched;
private final List<GeoCode> geoCodes;
private final String gpc;
private final boolean allowed;

public GeoRule(Set<ComponentType> componentTypes,
Set<String> componentNames,
boolean sidsMatched,
List<GeoCode> geoCodes,
String gpc,
boolean allowed) {

this.componentRule = new ComponentRule(componentTypes, componentNames, allowed);
this.sidsMatched = sidsMatched;
this.geoCodes = geoCodes;
this.gpc = gpc;
this.allowed = allowed;
}

@Override
public boolean matches(ActivityCallPayload activityCallPayload) {
return sidsMatched
&& (geoCodes == null || matchesOneOfGeoCodes(activityCallPayload))
&& (gpc == null || matchesGpc(activityCallPayload))
&& componentRule.matches(activityCallPayload);
}

Expand All @@ -49,6 +54,14 @@ private static boolean matchesGeoCode(GeoCode geoCode, GeoActivityCallPayload ge
&& (region == null || StringUtils.equalsIgnoreCase(region, geoPayload.region()));
}

private boolean matchesGpc(ActivityCallPayload activityCallPayload) {
if (activityCallPayload instanceof GpcActivityCallPayload gpcActivityCallPayload) {
return gpc.equals(gpcActivityCallPayload.gpc());
}

return true;
}

@Override
public boolean allowed() {
return allowed;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1052,8 +1052,13 @@ private static List<ExtBidderError> errorsDetails(List<BidderError> errors) {
*/
private Map<String, List<ExtBidderError>> extractDeprecatedBiddersErrors(BidRequest bidRequest) {
return bidRequest.getImp().stream()
.filter(imp -> imp.getExt() != null)
.flatMap(imp -> StreamUtil.asStream(imp.getExt().fieldNames()))
.flatMap(imp -> Optional.ofNullable(imp.getExt())
.flatMap(ext -> getExtPrebid(ext, ExtImpPrebid.class))
.map(ExtImpPrebid::getBidder)
.map(ObjectNode::fieldNames)
.map(StreamUtil::asStream)
.orElseGet(Stream::empty)
)
.distinct()
.filter(bidderCatalog::isDeprecatedName)
.collect(Collectors.toMap(Function.identity(),
Expand Down
Loading
Loading