-
Notifications
You must be signed in to change notification settings - Fork 749
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
Revise Account Configuration storage #1672
Comments
I like this. It aligns the storage format for files, HTTP API and database across all storable objects (stored requests, imps, accounts). It allows for easy NoSQL integration as well if the enabled field is stored in json also and not alongside it. It no longer requires a complicated SQL query to be provided for configuration. Postgres has a binary json format ( Given the complexity of working with databases in PBS-Go and PBS-Java I would go one step further and suggest we could move all the database functionality out of both PBS and into a separate microservice implementing the HTTP API already supported by both. This data service can have multiple modules for querying the data (SQL, noSQL, even files) as well as its own cache, and can scale and manage its connections independently. |
Sounds good to me. Easy for me to say though, PBS-Go does not have a db fetcher for account information.
I very much like the idea of separating out the database layer, such that PBS doesn't force hosts to use our specific schema and need to handle migrations. The http layer is much cleaner and easily allows for a microservice to sit behind it. At the same time, PBS has long supported a built-in database layer and I think it's reasonable to continue to evolve that offering. Removing it completely would force hosts to redesign their systems and that doesn't seem fair. I would like to see us continue with built-in database support but also encourage new hosts to create a microservice if they want to do something different or support a new database type. I imaging a lot of folks would like to use a nosql store at this point, so we could build that out as a separate service should other hosts want it. Not that I'm volunteering. |
Revised the focus of this issue. Basically we don't want to decide what schema a host company should be using. Instead, we want to better document a "config model" that's consistent across Java and Go, and well-documented. Then host companies can use the account-query config to map their schema to this config model. |
@bretg : Can we update the link to point to PRD, mentioned in events object of proposed config model above - #1672 (comment) |
Will review the status of this general account config update with the PBS-Java engineers tomorrow, but in the meantime, the "Event Config" section of https://docs.google.com/document/d/1a-U1DytiCTtacM27qH3OZwhPa7bDwQzfpVRHDhyikWw/edit#heading=h.wg49xad6oyg6 is the documentation I think you're looking for. I offer to meet with you guys again before you kickoff the project so we wind up on the same page. Prebid-Slack me if interested. |
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This is done in PBS-Java. Documentation about the final JSON format is in https://github.rp-core.com/ContainerTag/prebid-server-java/blob/master-rubicon/docs/application-settings.md PBS-Host companies can define a query which maps their specific database columns to the PBS internal JSON model as shown in that doc. |
@bretg The Prebid Server Committee did not progress to define a standard across both PBS-Go and PBS-Java. Is this still desirable? Otherwise, PBS-Go currently only accepts json for account config. Database fetching is not currently supported, but would be expected to follow this pattern and return only json when eventually implemented |
Closing this since it's complete for PBS-Java and not applicable for PBS-Go. PBS-Go is working on a new account retrieval implementation which will import json as described in this issue. |
There have been several recent additions to account-configuration parameters (bid_validations, analytics_config) and there are a couple more coming, e.g. endpoint_config, block_config. This issue aims to clarify the interface for adding this kind of config to Prebid Server.
Here's a draft of the proposed config model:
A couple of features to note:
If the host company has broken most of these into separate columns in their DB, then the
account-query
host config might be something like:With this clarified model of account config, here are the steps PBS-Java and PBS-Go would take to add another object:
FWIW - Magnite is planning to put most new values in a generic 'config' JSON column.
The text was updated successfully, but these errors were encountered: