Resource
DataProvider
A provider of event (e.g. impression) data. For example, a publisher or panel provider. Resource name pattern:dataProviders/{data_provider}
Resource name identifier.
The X.509 certificate belonging to this
DataProvider in DER format which can be used to verify public_key.Resource name of the
Certificate belonging to this DataProvider which can be used to verify public_key.The x509_der field of this resource matches certificate_der. Output only.Serialized
EncryptionPublicKey for this DataProvider, which can be verified using certificate.The version of the EncryptionPublicKey message must match the API version used to last update this resource.Display name of the data provider.
Resource names of every
Duchy that must be included in all computations involving this DataProvider.Interval for when data is guaranteed to be available for a
Requisition. If this field is specified, both start_time and end_time must be set.This field is being replaced by data_availability_intervals and is planned to be deprecated no sooner than in the Halo CMM 0.6 release.Capabilities of this
DataProvider. This indicates to the CMMS what the DataProvider is capable of at Measurement creation time.A map of
ModelLine resource name to data availability interval.Methods
GetDataProvider
Returns theDataProvider with the specified resource key.
Request
Resource name of the DataProvider.Format:
dataProviders/{data_provider}DataProvider resource.
Example
ReplaceDataProviderRequiredDuchies
Replaces therequired_duchies field in a DataProvider resource.
Request
Resource name of the DataProvider.Format:
dataProviders/{data_provider}Replacement for the
required_duchies field. Resource names of Duchies.DataProvider resource.
Example
- This is a full replacement operation, not an incremental update.
- All existing required duchies will be replaced with the new list.
- Required duchies must participate in all computations involving this DataProvider.
ReplaceDataAvailabilityIntervals
Replacesdata_availability_intervals.
Request
Resource name of the DataProvider.Format:
dataProviders/{data_provider}New value for
data_availability_intervals.DataProvider resource.
Example
- This is a full replacement operation for all model line availability intervals.
- Each entry maps a ModelLine resource name to a data availability interval.
- The interval indicates when the DataProvider guarantees data is available for that ModelLine.
ReplaceDataAvailabilityInterval
Replacesdata_availability_interval for a DataProvider resource.
Request
Resource name of the DataProvider.Format:
dataProviders/{data_provider}New value for
data_availability_interval.Both start_time and end_time must be set.DataProvider resource.
Example
- This method updates the deprecated
data_availability_intervalfield. - Use
ReplaceDataAvailabilityIntervalsfor the newer per-ModelLine approach. - Both
start_timeandend_timemust be specified in the interval.
ReplaceDataProviderCapabilities
Replaces thecapabilities field in a DataProvider resource.
Request
Resource name of the DataProvider.Format:
dataProviders/{data_provider}New value for
capabilities.DataProvider resource.
Example
- Capabilities indicate which measurement protocols the DataProvider supports.
- The CMMS uses these capabilities at measurement creation time to select appropriate protocols.
- This is a full replacement operation.
Data Availability Management
Understanding Data Availability
Data availability intervals tell the system when the DataProvider has data available to fulfill requisitions:- Per-ModelLine Intervals (
data_availability_intervals): Modern approach where availability is specified per ModelLine. - Global Interval (
data_availability_interval): Legacy approach with a single interval for all data.
Best Practices
- Conservative Intervals: Only specify intervals where you’re guaranteed to have data available.
- Regular Updates: Update availability intervals as your data retention policies change.
- ModelLine Specificity: Use per-ModelLine intervals for more accurate availability tracking.
- Interval Constraints: Ensure intervals fall within the active range of the corresponding ModelLine.
Protocol Capabilities
Supported Protocols
-
Honest Majority Share Shuffle (HMSS)
- Efficient protocol for large-scale measurements
- Requires honest majority assumption
- Set
honest_majority_share_shuffle_supported = trueto enable
-
TrusTEE
- Trusted Execution Environment based protocol
- Enhanced security guarantees
- Set
trus_tee_supported = trueto enable
Updating Capabilities
When your infrastructure changes:- Assess which protocols your systems can support
- Test protocol implementations thoroughly
- Use
ReplaceDataProviderCapabilitiesto update - Monitor measurements to ensure protocol compatibility
Required Duchies
Duchies are computation nodes in the system. Some DataProviders may require specific duchies for compliance or performance reasons:- Compliance: Certain duchies may be in specific jurisdictions
- Performance: Duchies may have different computational capabilities
- Availability: Required duchies must be available for all measurements
Managing Required Duchies
- Identify which duchies meet your requirements
- Use
ReplaceDataProviderRequiredDuchiesto set the list - All measurements involving this DataProvider will include these duchies
