Releases: privacysandbox/protected-auction-key-value-service
Releases · privacysandbox/protected-auction-key-value-service
Release 1.0.0
⚠ BREAKING CHANGES
- GA release
Features
- Add 64 bit int sets support to key value cache
- Add CBOR conversion for v2 objects
- Add CBOR support to multi-partition flows in V2
- add CORS headers for envoy config
- Add data loading support for uint64 sets
- Add documentation for uint64 sets
- Add internal lookup rpc for uint64 sets
- Add parameter notifier to get parameter update notification
- Add partition-level metadata to UDF execution metadata
- Add runSetQueryUInt64 udf hook
- Add support for reading and writing uint64 sets to csv files
- Add uint64 bitset wrapper.
- CBOR conversion for Compresion Group
- CborDecodeToProto implementation
- Convert http ContentType header to a custom header in GCP
- Download pre-built aws-otel-collector.rpm
- Encode cbor content as bytestring and add partitionOutputs to CBOR converter
- Fix release script
- Flag to control chaffing for sharding for nonprod
- GA release
- Implement CBOR for validator
- Implement internal GetUInt64ValueSet functionality
- Implement InternalRunSetQueryUInt64 rpc (local lookup)
- Implement InternalRunSetQueryUInt64 rpc (sharded lookup)
- multiple partition support
- Pass partition level metadata to UDF
- Process v2 padded requests
- Put server logs in the response DebugInfo for consented requests
- Refactor cache logic for bitsets into it's own class
- Set up AWS terraform resources for logging verbosity parameter notification
- Start parameter notifier to get logging verbosity updates
- Support dataVersion field in PA partition output
- Support set operations for 64 bit int sets
- Update AWS sqs cleanup function to clean up sqs for parameter updates
- Update common repo and set the verbosity level for PS_VLOG with new API
- Update v2 contract
- Update v2 headers
- Upgrade common repo to 9c5c93e
- Upgrade rules_oci to 2.0 and deprecate rules_docker
- Use proper ohttp media types for encryption
- When using the wrong inline set type in query, resolve the result
Bug Fixes
- Add missing include directive
- Add missing internal testing parameters
- Allow CORS OPTIONS for preflight
- Correct fork logic
- Correct output_filter typo
- Destroy terraform before doing perfgate exporting
- Enable a second kv on aws deployment.
- fix AppMesh health check.
- logMessage should us PS LOGS
- Make AL2023 work.
- Remove "k" from ReceivedLowLatencyNotificationsCount metric name
- Remove version from header
- Rename BUILD to BUILD.bazel
- Resolve proxy subnet resources collision issue.
- Response partition id should come from the request
- Temporary GCP V2 HTTP envoy fix
- Update common repo to pick up the server crash fix
- Update V2 handler and docs with proper ohttp response label.
- Upgrade builders version to 0.69.0
- Use specified release branch to cut release.
- V2 should not return error status on UDF failure
Dependencies
- deps: Upgrade build-system to 0.66.1
- deps: Upgrade data-plane-shared-libraries to 144264c 2024-07-31
Documentation
- Add aws update-function-code lambda update command to the AWS deployment doc
- Add readme doc for diagnostic tool
- Add screenshot for gcp server prod log location
- Update docs to use docker compose instead of docker-compose
- Update gcp deployment doc about console logging
- Update playbook
Image digests and PCR0s
GCP: sha256:0be0c08b7a74addb47470540e90499279bd8aff19eba2e2d1c31521318c7d540
AWS: {"PCR0":"f95aad96efad5be14706e3a6765117273700c68432b091e9216f9df4f8d30ec0e423d2f96e3fc05db9fc2fd501882a25"}
Release 0.17.1
Bug Fixes
- Enable a second kv on aws deployment.
- fix AppMesh health check.
- Resolve proxy subnet resources collision issue.
Image digests and PCR0s
GCP: sha256:93c43c56d8537674e687eef9225d266f98b75d095458730181eb62d4dc800959
AWS: {"PCR0":"1cc1e249c0a48291b2b18b4ed9f680d1ab27daf697b0fc3bf98c071e05295649978b3dd26c2224023bdd4f3a64b939f5"}
Release 0.17.0
Features
- Add a set wrapper around bitset for storing uint32 values
- Add a thread safe wrapper around hash map
- Add b&a e2e test env
- Add data loading support for uint32 sets
- Add health check to AWS mesh.
- Add hook for running set query using uint32 sets as input
- Add interestGroupNames to V1 API
- Add latency metrics for cache uint32 sets functions
- Add latency without custom code execution metric
- Add option to use existing network on AWS.
- Add padding to responses
- Add request log context to request context
- Add runsetqueryint udf hook
- Add set operation functions for bitsets
- Add support for int32_t sets to key value cache
- Add support for reading and writing int sets to csv files
- Add udf hook for running int sets set query (local lookup)
- Allow pas request to pass consented debug config and log context
- Implement sharded RunSetQueryInt rpc for lookup client
- Implement uint32 sets sharded lookup support
- Load consented debug token from server parameter
- Pass LogContext and ConsentedDebugConfig to internal lookup server in sharded case
- Plumb the safe path log context in the cache update execution path
- Set verbosity level for PS_VLOG
- Simplify thread safe hash map and use a single map for node storage
- Support uint32 sets for query parsing and evaluation
- Support uint32 sets in InternalLookup rpc
- Switch absl log for PS_LOG and PS_VLOG for unsafe code path
- Switch absl log to PS_LOG for safe code path
- Switch absl vlog to PS_VLOG for safe code path
- Update AWS coordinators public prod endpoint from GG to G3P
Bug Fixes
- Add missing include/library deps
- Augment UDF loading info message
- Correct copts build config.
- Correct verbosity flag for gcp validator.
- Effectively lock the key in the set map cleanup
- Fix detached head of continuous e2e branch.
- Properly initialize runSetQueryInt hook
- Remove ignore interestGroupNames from envoy
- Remove test filter to allow all unit tests run in the build
- Simplify request context and pass it as shared pointer to the hooks
- Upgrade common repo version
- Use kms_binaries tar target from common repo
- Use structured initializer for clarity
Dependencies
- deps: Upgrade build-system to 0.62.0
- deps: Upgrade data-plane-shared-libraries to 52239f15 2024-05-21
- deps: Upgrade pre-commit hooks
GCP: Features
- GCP: Switch to internal lb for the otlp collector
- GCP: Switch to internal lb for the otlp collector with bug fixes
Documentation
- Add debugging playbook
- Correct commands for sample_word2vec getting_started example
- KV onboarding guide
- Update to the ads retrieval explainer
- Update word2vec example
- Use aws_platform bazel config
- Use local_{platform,instance} bazel configs
Image digests and PCR0s
GCP: sha256:d09d5a6d340a8829df03213b71b74d4b431e4d5a138525c77269c347a367b004
AWS: {"PCR0":"1e28ac4b72600ea40d61e1756e14f453a3d923a1bf94c360ae48d9777bff0714923d9322ed380823591859e357d2f825"}
Release 0.16.0
Features
- Add cache hit or miss metrics
- Add coorindator specific terraform parameters
- Add data loading prefix allowlist parameter
- Add default PAS UDF
- Add E2E latency for GetKeyValues and GetKeyValueSet in sharded lookup
- Add file groups and file group reader logic
- Add go fmt to pre-commit
- Add key prefix support to blob storage client
- Add LogContext and ConsentedDebugConfiguration proto to v2 API and internal lookup API
- Add prod and nonprod build flag
- Add request context to wrap metrics context
- Add support for configuring directory allowlist
- Add wiring for prefix allowlist (actual impl in follow up cl)
- Allow overrides for coordinators endpoints in nonprod mode
- Allow to disable v1 key not found entry in response
- Create separate metrics context map for internal lookup server
- Deprecate metrics recorder for internal lookup
- Deprecate metrics recorder for internal server
- Deprecate metrics recorder for sharded lookup
- deprecate metrics recorder for V1 server and handler
- Deprecate metrics recorder from cache
- Enable simulation system send realtime udpates
- Enable TCMalloc for KV Server and benchmarks
- Explicitly enable core dumps
- Implement deletion cutoff max timestamp per directory
- Load data files and allow notifications from configured prefix
- Load prefix files on startup and handle prefix blob notifications
- Log common request metrics
- Migrate from glog to absl log
- Partition data loading metrics by delta file name
- Pass request context from hooks to downstream components
- Pass request context to udf hooks
- Read telemetry config from cloud parameter
- Revamp AWS metrics dashboard
- Revamp GCP metrics dashboard
- Set udf_min_log_level from parameter store.
- Support content type proto for v2 api
- Support content type proto for v2 api response
- Update cache interface and blob data location to pass prefix
- Update start_after to use a map from prefix to start_after
- Use file groups for loading snapshots
- Write logs to an Otel endpoint
Bug Fixes
- Actually load all files in a snapshot file group
- AWS: Filter out unavailable zones.
- Correct an error in kokoro_release.
- Correct format for image tag.
- Correct typo for internal dev's service_mesh_address.
- Correct typos in GCP deployment guide.
- Crash server if default UDF fails to load.
- Delete non-active certificate before creating a new one.
- Fix filtering logic for prefixed blobs
- Fix permissions for data-loading-blob-prefix-allowlist
- Make GCP nat optional.
- Parse delta filename from notification before validating it
- Remove glog dependency for record_utils
- Remove temp dir only if it's successfully created.
- Rename class to ThreadManager
- Set retain_initial_value_of_delta_metric flag for aws metrics exporter
- Update a outdated hyperlink.
- Update common repo to pick up the AWS metrics dimension fix
- Update GCP Terraform with ability to delete unhealthy instance.
- Update tf variables to use gorekore instead of kelvingorekore
- Use blob key instead of prefixed basename
GCP: Fixes
- GCP: Make sure server is connected to otel collector before reaching to ready state
GCP: Features
- GCP: Applying Terraform pulls docker image with new tag.
- GCP: Make service mesh address configurable.
- GCP: Make subnet ip cidr configurable.
- GCP: Make xlb/envoy optional.
Documentation
- Add ad retrieval explainer.
- Add docs for directory support
- Add PA and PAS folders
- Add PAS developer guide
- Add public docs for file groups
- Ads retreival explainer update.
Dependencies
- deps: Add clang-tidy bazel config
- deps: Add cpp_nowarn bazel config
- deps: Upgrade bazel to 6.5.0
- deps: Upgrade build-system to 0.55.1
- deps: Upgrade build-system to 0.55.2
- deps: Upgrade build-system to 0.57.0
- deps: Upgrade data-plane-shared repo
- deps: Upgrade data-plane-shared repo to 1684674 2024-02-09
- deps: Upgrade data-plane-shared-libraries to 1fbac46
- deps: Upgrade pre-commit hooks
Bug: N/A
Release 0.15.0
Features
- Add an ability to add default tags
- Add AWS cpu utilization and memory utilization dashboards
- Add bazel configs prod and non_prod
- Add change notifier error count to the AWS metrics dashboard
- Add delta based realtime updates publisher
- Add delta record limited file writer
- Add GCP system metrics dashboard for kv server
- Add gcp_project_id flag when --platform=gcp is specified
- add go script for pushing gcp docker image
- Add optional logical_commit_time param to wasm macros.
- Add sharded realtime message batcher
- Add sharding data locality terraform parameters
- Add sharding support for publishing engine
- Add system metrics to log cpu and memory utilization
- Add UDF timeout parameter value to terraform
- Allow prefix path segments for gRPC http paths.
- Allow setting logging verbosity level through a parameter
- Data locality support
- Enable prettier pre-commit hook for JavaScript
- Expose http_api_paths tf variable to allow prefix matching
- Log error metrics for the change notifier
- Log metrics in the retries with new Telemetry API
- Migrate realtime metrics to new Telemetry API
- Remove envoy health checks
- Remove metrics recorder from blob storage client
- Remove metrics recorder from data orchestrator
- Remove metrics recorder from data reader
- Set UDF timeout from parameters
- Support passing in shard metadata via data_cli flags
- Update default tretyakov aws env settings
- Update v1 to return status per key
Bug Fixes
- Add all record values to switch cases
- add data-bucket-id back as a flag suffix.
- Add run_all_tests bazel config
- bazel config for emscripten no longer needs tool chain resolution
- Check grpc channel connection before sending requests
- deps: Upgrade data-plane-shared-libraries to 44d1d64 2024-01-08
- envoy.yaml permission and pre-commit fix
- Integrate RomaService changes from common repo
- Make some cache logging more precise.
- Missing absl deps
- Prevent Config from being copied into RomaService
- rectify kv_service_port in terraform.
- Remove jaeger as it has been deprecated
- Remove local platform for common repo and fix CloudPlatform import
- Update 'X-allow-fledge' header to 'Ad-Auction-Allowed' according to the spec.
- update GCP tentb environment
- Update UDFs to fix breakages due to FunctionBindingObjectV2
- Upgrade otel collector to the latest version
Dependencies
- deps: Upgrade data-plane-shared to commit f0d0b89 2023-11-14
GCP: Features
- GCP: Add external load balancer and envoy.
- GCP: store Terraform state remotely in GCS bucket
Documentation
- [Sharding] Add info about NUMA clusters
- Add docs for server cpu and memory profiling
- Add info on default wasm macro linkopts and memory limits.
- Add state transition sequence diagrams for aws/gcp sharded/nonsharded configurations
- Data locality
- Doc for aws private communication setup
- Sharding -- add a link to a tool that sets shard id in the delta metadata
- Specify --init flag for docker run commands
Bug: N/A
Release 0.14.0
Features
- [API breaking change] Rename subkey to hostname.
- [Sharding] Add a tool to validate records
- [Sharding] Generate shard specific delta files
- Add base64 encoding to CSV delta cli tool
- Add safe metric definitions
- Add unsafe metric definitions
- Fully statically link the server binary
- Simplified UDF tester.
Bug Fixes
- Add error message when key not found.
- Add proxy visibility back to aws_artifacts
- allow internal ingress for otlp
- Clear errors in driver prior to parsing.
- Fix bash script flag for -v
- Fully qualify RegisterBenchmark calls.
- Package proxify layer on container_image
- Remove unused import httpbody.proto
- Update visibility target to public target in common repo
- Use set for cache key lookups
GCP: Features
- GCP: add capability to use existing service_mesh
Documentation
- Add a top level getting_started directory.
- Add docs about AWS AMI structure
- Add instructions on how to call UDF APIs from C++ WASM.
- Update sharding docs with GCP-specific info
Dependencies
- deps: Update data-plane-shared to b463f16
- deps: Utilize rules_closure deps via data-plane-shared
Bug: N/A
Release 0.13.0
Features
- Add bazel config for code coverage
- Add proto definition for UDF input.
- Add string set support in udf delta tester.
- Add support to output graphviz dot file when playing with queries
- Move server_docker_image.tar to dist/
- Set bazel version to 6.3.2
- Set shard id label for metrics
- Update to latest PublicKeyFetcher
Bug Fixes
- Add seccomp flag to functional tests for local runs
- Allow changelog file to contain non-ascii chars
- bump the terraform version to v1.2.3
- Correct bazel config_setting visibility
- Fix blob_storage_client_gcp's polling frequency
- Fix excessive logging of unmock methods which cause flaky test in local
- Move server_docker_image.tar into dist dir
GCP: Features
- GCP: add GCP blob storage client.
Dependencies
- deps: Upgrade build-system to 0.45.0
Documentation
- [Realtime updates] Update docs to reflect GCP details
- Modify some sentences that I found hard to read.
- Sharding
- Sharding -- metrics
Bug: N/A
Release 0.12.0
Features
- [Coordinators] moving /server/bin to /
- [GCP] Add realtime notifier tool
- [sharding] Add metrics for set query
- A delta based request generator that creates KV requests from delta files
- A generic grpc client that sends a request and returns a response
- Add ability to point to real coordinators through parameters
- Add bazel configs for roma legacy vs sandboxed
- Add bazel macro to generate UDF delta file from wasm binary and JS
- Add delta based request generator to the simulation system
- Add delta file notifier and loader to the request simulation system
- Add Dependencies section to release notes
- Add functions for serializing and deserializing shard mapping records
- Add GCP features and fixes sections in release notes
- add GCP platform and instance
- Add GCP realtime notifier
- Add GCP terraform config for metrics collector
- Add logical sharding config schema and constants
- Add metrics collector endpoint to the parameter
- Add metrics collector to periodically print and publish metrics
- Add NAT gateway for public internet access
- Add OSSF Scorecard badge to top-level README
- Add OSSF Scorecard GitHub Action
- add service mesh to GCP platform
- Add support to execute queries over sharded sets.
- Add tool to convert C++ to JS with inline WASM
- add unit tests to gcp parameter client
- Add version to UdfConfig.
- Adding GCP version of the message service
- Build AMI for request simulation system
- Coordinators: Add missing permission
- Deploy otel with request simulation system to AWS
- Enable metrics and tune the performance for request simulation system
- GCP terraform and parameter client refactor
- Generate synthetic requests at fixed rate
- grpc client worker to send requests at configurable QPS
- Integrating kv value server with the KeyFetcherManagerInterface
- Register get values hook for string and binary output format
- Run request simulation system in local
- Skip delta and snapshot files that belong to other shards
- Support writing shard mapping configs from csv
- Upgrade build-system to v0.33.0
- Upgrade data-plane-shared-libraries to 2023-07-12 commit.
- Upgrade data-plane-shared-libraries to 2023-07-21 commit.
- Upgrade data-plane-shared-libraries to 2023-07-26 commit.
- Upgrade data-plane-shared-libraries to 2023-08-16 commit.
- use local parameter client for gcp platform's local instance
Bug Fixes
- Acquire read lock on the set before iterating over it.
- Add action_env for asan bazel config
- Add noexcept bazel config
- Add seccomp-unconfined flag to build_and_test_all_in_docker
- Check that fb strings are not nullptr.
- Check the metrics collector connection during telemetry initialization
- Do not pass metrics collector endpoint for local and aws instance
- Don't move references in sample udf code.
- Explicitly cast return values of set operations to r-value references
- fix another asan error in the test
- Fix data loading num threads in param client local test
- Fix grpc client error
- Fix the error messages printed in the unit test logs
- Fix UDF function handler name
- logMessage should set an output string.
- make the response outlive grpc client call
- Rearrange bazel config for clarity
- Reduce the number of client workers to 2 in the unit tests to limit the number of threads created
- remove GRPC 4mb payload limit
- remove local variant of component tools.
- Remove redundant docker security-opt
- Set bazel workspace name
- Write data record for set data in the delta test file generator
Dependencies
- deps: Upgrade build-system to 0.42.1
- deps: Upgrade build-system to v0.41.1
- deps: Upgrade emscripten to 3.1.44
GCP: Features
- GCP: Add realtime thread pool manager
Documentation
- Add docs on getValuesBinary API
- Realtime directory is not optional for local dev
- Update docker run instructions to include security-opt flag
- Update inline WASM docs with instructions on how to test it
- Update screenshot of delta file
Bug: N/A
Release 0.11.1
Bug: b/293901782
Release 0.11.0
Features
- [Breaking change] Use UserDefinedFunctionsConfig instead of KVs for loading UDFs.
- [Sharding] Add hpke for s2s communication
- [Sharding] Allow for partial data lookups
- [Sharding] Making downstream requests in parallel
- Add bazel build flag --announce_rc
- Add bool parameter to allow routing V1 requests through V2.
- Add buf format pre-commit hook
- Add build time directive for reentrant parser.
- Add functions to retrieve instance information.
- Add internal run query client and server.
- Add JS hook for set query.
- Add lookup client and server for communication with shards
- Add MessageQueue for the request simulation system
- Add query grammar and interface for set queries.
- Add rate limiter for the request simulation system
- Add second map to store key value set and add set value update interfaces
- Add shard metadata for supporting sharded files
- Add simple microbenchmarks for key value cache
- Add UDF support for format data command.
- Add unit tests for query lexer.
- Adding cluster mappings manager
- Adding padding
- Apply custom lockings on the cache
- Connect InternalRunQuery to the parser
- Extend and simplify collect-logs to capture test outputs
- Extend use of scp deps via data-plane-shared repo
- Implement shard manager
- Move sharding function to public so it's available for file sharding
- Register a logging hook with the UDF.
- Register run query hook with udf framework.
- Sharding - realtime updates
- Sharding read flow fixes
- Simplify work done in set operations. Set operations can be passed by
- Snapshot files support UDF configs.
- Support reading and writing set queries to data files.
- Support reading and writing set values for csv files
- Support reading/writing DataRecords. Requires new DELTA format.
- Support writing sharded files
- Update data_loading.fb to support UDF code updates.
- Update pre-commit hook versions
- Update shard manager mappings continuously
- Upgrade build-system to release-0.28.0
- Upgrade build-system to v0.30.1
- Upgrade scp to 0.72.0
- Use Unix domain socket for internal lookup server.
- Utilize AWS deps via data-plane-shared repo
Bug Fixes
- Add internal lookup client deadline.
- Catch error if insufficient args specified
- Fix aggregation logic for set values.
- Fix ASAN potential deadlock errors in key_value_cache_test
- Proper memory management of callback hook wrappers.
- Specify 2 workers for UDF execution.
- Upgrade pre-commit hooks
- Use shared pointer for UDF absl::Notification.
Build Tools: Fixes
- build: Add scope-based sections in release notes
Documentation
- Add docs for data loading capabilities
- Add explanation that access control is managed by IAM for writes.
- Point readme to a new sharding public explainer
Bug: 290798418