Conversation
Code coverage summaryNote:
proxistoreRefer here for heat map coverage report |
…on and update related test files.
Code coverage summaryNote:
proxistoreRefer here for heat map coverage report |
Code coverage summaryNote:
proxistoreRefer here for heat map coverage report |
Code coverage summaryNote:
proxistoreRefer here for heat map coverage report |
Code coverage summaryNote:
proxistoreRefer here for heat map coverage report |
AGENT TESTINGPR #4674 Review: New Adapter: ProxistoreAuthor: anthonyrichir | Type: New Adapter | CI: Clean (all 3 checks passed) Triage Manifest
File Routing
Issues FoundFAIL:
|
| Check | Result | Evidence |
|---|---|---|
| URL format | PASS | Well-formed HTTPS URL |
| Reachability | WARN | HTTP 500 on empty POST (expected 400) |
| SSL/TLS | PASS | Wildcard cert *.proxistore.com, Sectigo CA, valid until Jan 6, 2027 |
| Domain ownership | PASS | proxistore.com matches bidder name |
| No hardcoded credentials | PASS | Clean URL |
| No template macros | PASS | No {{...}} present |
geoscope: [EUR]
| Check | Result | Evidence |
|---|---|---|
| Valid value | FAIL | EUR is not a valid geoscope value. Should be EEA or specific country codes |
maintainer.email: "support@proxistore.com"
| Check | Result | Evidence |
|---|---|---|
| Email format | PASS | Valid format |
| Domain consistency | PASS | proxistore.com matches bidder domain |
gvlVendorID: 418
| Check | Result | Evidence |
|---|---|---|
| Value range | PASS | Positive integer |
| GVL lookup | PASS | Vendor 418 = PROXISTORE |
| Company name match | PASS | Exact match with bidder name |
| Privacy URLs | PASS | GVL links to proxistore.com privacy policy in FR/EN/NL |
openrtb.version: "2.6"
| Check | Result | Evidence |
|---|---|---|
| Valid value | PASS | "2.6" is a recognized OpenRTB version |
| Code compatibility | PASS | Adapter imports openrtb/v20 and uses openrtb2.Bid structs |
capabilities: app (banner), site (banner)
| Check | Result | Evidence |
|---|---|---|
| Valid media types | PASS | banner is valid |
| At least one per platform | PASS | Both app and site declare banner |
| App test coverage | WARN | No app context test fixtures provided |
userSync.redirect
| Check | Result | Evidence |
|---|---|---|
| HTTPS | PASS | Uses https://abs.proxistore.com/... |
| Reachability | PASS | HTTP 204 |
| Privacy macros | PASS | {{.GDPR}}, {{.GDPRConsent}}, {{.RedirectURL}} present |
| USPrivacy macro | WARN | Missing {{.USPrivacy}} |
| Domain ownership | PASS | abs.proxistore.com belongs to Proxistore |
| userMacro | PASS | $UID is a standard format |
userSync.iframe
| Check | Result | Evidence |
|---|---|---|
| HTTPS | PASS | Uses https://abs.proxistore.com/... |
| Reachability | WARN | HTTP 406 (Not Acceptable) |
| Privacy macros | PASS | Same macros as redirect |
| Domain ownership | PASS | Same domain as redirect |
Bidder-Params: proxistore.json + imp_proxistore.go + params_test.go
JSON Schema
| Check | Result | Evidence |
|---|---|---|
| Draft-04 schema | PASS | $schema declares draft-04 |
| Required fields | PASS | website and language both required |
| String types with minLength | PASS | Both fields: type: string, minLength: 1 |
imp_proxistore.go
| Check | Result | Evidence |
|---|---|---|
| Struct matches schema | PASS | Website string and Language string map to JSON schema |
| No omitempty on required fields | PASS | Neither field has omitempty tag |
| json tags match schema | PASS | json:"website" and json:"language" match schema property names |
params_test.go
| Check | Result | Evidence |
|---|---|---|
| Valid params tested | PASS | 3 valid param sets tested |
| Invalid params tested | PASS | 8 invalid cases: empty object, missing each field, empty strings, wrong types, null |
| Uses BidderProxistore constant | PASS | References openrtb_ext.BidderProxistore |
Adapter-Code: proxistore.go + tests + registration
Code Quality
| Check | Result | Evidence |
|---|---|---|
| Uses jsonutil (not encoding/json) | PASS | jsonutil.Marshal and jsonutil.Unmarshal throughout |
| Uses GetImpIDs | PASS | openrtb_ext.GetImpIDs(request.Imp) called |
| MType-based bid typing | PASS | Uses bid.MType switch (banner/video/audio/native) |
| Error handling: 204 | PASS | Returns nil, nil |
| Error handling: 400 | PASS | Returns BadInput error |
| Error handling: other | PASS | Returns BadServerResponse error |
| No JSON injection risk | PASS | No json.RawMessage manipulation |
| Marshal error handled | PASS | Returns error from jsonutil.Marshal |
Registration
| Check | Result | Evidence |
|---|---|---|
openrtb_ext/bidders.go |
PASS | BidderProxistore constant added, correct alphabetical order |
exchange/adapter_builders.go |
PASS | Import and builder map entry added, correct alphabetical order |
Test Data
| Check | Result | Evidence |
|---|---|---|
| Exemplary fixtures | PASS | 2 files: simple-banner.json, multi-imp-banner.json |
| Supplemental fixtures | PASS | 5 files: bad-response, missing-params, status-204, status-400, status-500 |
| Test runner | PASS | RunJSONBidderTest(t, "proxistoretest", bidder) with correct directory |
| Site/App parity | WARN | All fixtures use site context only, no app test |
| MType coverage | WARN | Only mtype: 1 (banner) tested, no video/audio/native |
PR-Level Checks
| Check | Result | Evidence |
|---|---|---|
| Documentation PR | PASS | Links prebid/prebid.github.io#6420 |
| Duplicate PR check | PASS | Only open PR for "proxistore" |
| New adapter completeness | PASS | All 10 required file types present |
| CI status | PASS | All 3 checks passed |
Recommendation: Request Changes
This is a well-structured new adapter PR with good code quality and comprehensive error handling. However, there are several items that should be addressed:
- Must fix:
geoscope: EURis invalid — change toEEAor appropriate country codes - Should fix: Iframe sync URL returns 406 — either fix the endpoint or remove the iframe sync declaration
- Should fix: Add at least one
appcontext test fixture to match declared app capabilities - Should fix: Add test fixtures for video/audio/native MTypes to improve
getMediaTypeForBidcoverage (currently 33.3%) - Consider: Remove or update the misleading regional endpoint comment in the YAML
- Consider: Investigate why the bidding endpoint returns 500 instead of 400 for malformed requests
Task Completion Summary
| Task # | Subject | Status |
|---|---|---|
| 9 | PR Triage: Classify PR #4674, route files, check CI | Completed |
| 10 | Bidder-info: Verify proxistore.yaml fields | Completed |
| 11 | Bidder-params: Verify proxistore.json schema + imp struct + params_test | Completed |
| 12 | Adapter-code: Verify proxistore.go, tests, test data, registration | Completed |
| 13 | Produce final review summary for PR #4674 | Completed |
Skills Called
| Skill | Outcome |
|---|---|
pr-triage |
Executed inline — file categorization, CI check, completeness check, cross-skill concerns |
bidder-info-pr-review |
Executed inline — endpoint, geoscope, GVL, capabilities, userSync verification |
bidder-params-pr-review |
Executed inline — schema, imp struct, params_test verification |
adapter-code-pr-review |
Executed inline — code quality, registration, test data verification |
Code / Commands Executed
| Command | Purpose | Result |
|---|---|---|
curl -X POST https://api.proxistore.com/v3/rtb/openrtb |
Endpoint reachability | HTTP 500 (WARN) |
openssl s_client -connect api.proxistore.com:443 |
SSL certificate check | Wildcard cert, valid until Jan 2027 |
curl vendor-list.consensu.org | python3 (vendor 418) |
GVL vendor lookup | "PROXISTORE" confirmed |
curl https://abs.proxistore.com/.../redirect |
Redirect sync URL check | HTTP 204 (PASS) |
curl https://abs.proxistore.com/.../iframe |
Iframe sync URL check | HTTP 406 (WARN) |
WebFetch API Calls
| URL | Purpose |
|---|---|
api.github.com/.../pulls/4674 |
PR metadata |
api.github.com/.../pulls/4674/files |
File list + patches (fetched twice for full detail) |
api.github.com/.../pulls/4674/commits |
Head SHA for CI check |
api.github.com/.../commits/{sha}/check-runs |
CI status |
api.github.com/.../pulls/4674/comments |
Existing review comments |
api.github.com/.../issues/4674/comments |
Existing PR-level comments |
…pes and update bidder info configs
Code coverage summaryNote:
proxistoreRefer here for heat map coverage report |
|
@ChrisHuie Thanks for the feedback, all of the recommandations have been addressed. |
Type of change
Bugfix
Feature
New bidder adapter
Updated bidder adapter
Code style update (formatting, local variables)
Refactoring (no functional changes, no api changes)
Build related changes
CI related changes
Does this change affect user-facing APIs or examples documented on http://prebid.org?
Other
Description of change
Other information
Prebid doc PR