Documentation
¶
Overview ¶
Package publish defines the exposure keys publishing API.
Package publish contains OpenCensus metrics and views for publish operations ¶
Package publish defines the exposure keys publishing API.
Package publish defines the exposure keys publishing API.
Package publish defines the exposure keys publishing API.
Index ¶
- Constants
- type Config
- func (c *Config) AuthorizedAppConfig() *authorizedapp.Config
- func (c *Config) DatabaseConfig() *database.Config
- func (c *Config) DebugReleaseSameDayKeys() bool
- func (c *Config) DefaultSymptomOnsetDaysAgo() uint
- func (c *Config) KeyManagerConfig() *keys.Config
- func (c *Config) MaintenanceMode() bool
- func (c *Config) MaxExposureKeys() uint
- func (c *Config) MaxIntervalStartAge() time.Duration
- func (c *Config) MaxSameDayKeys() uint
- func (c *Config) MaxSymptomOnsetDays() uint
- func (c *Config) MaxValidSymptomOnsetReportDays() uint
- func (c *Config) ObservabilityExporterConfig() *observability.Config
- func (c *Config) SecretManagerConfig() *secrets.Config
- func (c *Config) TruncateWindow() time.Duration
- func (c *Config) Validate() error
- type Server
Constants ¶
View Source
const (
HeaderAPIVersion = "x-api-version"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
AuthorizedApp authorizedapp.Config
Database database.Config
SecretManager secrets.Config
KeyManager keys.Config
Verification verification.Config
ObservabilityExporter observability.Config
RevisionToken revision.Config
Port string `env:"PORT, default=8080"`
Maintenance bool `env:"MAINTENANCE_MODE, default=false"`
MaxKeysOnPublish uint `env:"MAX_KEYS_ON_PUBLISH, default=30"`
// Provides compatibility w/ 1.5 release.
MaxSameStartIntervalKeys uint `env:"MAX_SAME_START_INTERVAL_KEYS, default=3"`
MaxIntervalAge time.Duration `env:"MAX_INTERVAL_AGE_ON_PUBLISH, default=360h"`
CreatedAtTruncateWindow time.Duration `env:"TRUNCATE_WINDOW, default=1h"`
// Symptom onset settings.
// Maximum valid range. TEKs presneted with values outside this range, but still "reasonable" will not be saved.
MaxMagnitudeSymptomOnsetDays uint `env:"MAX_SYMPTOM_ONSET_DAYS, default=14"`
// MaxValidSymptomOnsetReportDays indicates how many days would be considered
// a valid symptom onset report (-val..+val). Anything outside
// that range would be subject to the default symptom onset flags (see below).
MaxSymptomOnsetReportDays uint `env:"MAX_VALID_SYMPTOM_ONSET_REPORT_DAYS, default=28"`
// TEKs that arrive without a days since symptom onset (i.e. no symptom onset date),
// then the upload date minus DEFAULT_SYMPTOM_ONSET_DAYS_AGO is used.
SymptomOnsetDaysAgo uint `env:"DEFAULT_SYMPTOM_ONSET_DAYS_AGO, default=4"`
ResponsePaddingMinBytes int64 `env:"RESPONSE_PADDING_MIN_BYTES, default=1024"`
ResponsePaddingRange int64 `env:"RESPONSE_PADDING_RANGE, default=1024"`
RevisionKeyCacheDuration time.Duration `env:"REVISION_KEY_CACHE_DURATION, default=1m"`
// AllowPartialRevisions permits uploading multiple exposure keys with a
// revision token where only a subset of the keys are in the token. In that
// case, only the incoming exposure keys that match the revision token are
// uploaded and the remainder are discarded.
AllowPartialRevisions bool `env:"ALLOW_PARTIAL_REVISIONS, default=false"`
// API Versions.
EnableV1Alpha1API bool `env:"ENABLE_V1ALPHA1_API, default=false"`
// If set and if a publish request has no regions (v1alpha1) and the health authority
// has no regions configured, then this default will be assumed.
// This is present for an upgrade edgecase where empty region list used to mean "all regions"
// Should only be set if a server is being operated in a single region.
DefaultRegion string `env:"DEFAULT_REGION"`
// LogJSONParseErrors will log errors from parsoning incoming requests if enabled.
// The logs are at the WARN log level.
LogJSONParseErrors bool `env:"LOG_JSON_PARSE_ERRORS, default=false"`
// Flags for local development and testing. This will cause still valid keys
// to not be embargoed.
// Normally "still valid" keys can be accepted, but are embargoed.
ReleaseSameDayKeys bool `env:"DEBUG_RELEASE_SAME_DAY_KEYS"`
DebugLogBadCertificates bool `env:"DEBUG_LOG_BAD_CERTIFICATES"`
// Publish stats API config
// Minimum number of publish requests that need to be present to see stats for a given day.
// If the minimum is not met, that day is not revealed or shown in aggregates.
// This value must be >= 10
StatsUploadMinimum int64 `env:"STATS_UPLOAD_MINIMUM, default=10"`
// Allow release of a day's stats after this much time has passed (measured from end of day).
// Set to <= 0 to disable this feature.
// If the value is positive, it must be >= 48h.
StatsEmbargoPeriod time.Duration `env:"STATS_EMBARGO_PERIOD, default=48h"`
StatsResponsePaddingMinBytes int64 `env:"RESPONSE_PADDING_MIN_BYTES, default=2048"`
StatsResponsePaddingRange int64 `env:"RESPONSE_PADDING_RANGE, default=1024"`
}
Config represents the configuration and associated environment variables for the publish components.
func (*Config) AuthorizedAppConfig ¶
func (c *Config) AuthorizedAppConfig() *authorizedapp.Config
func (*Config) DatabaseConfig ¶
func (*Config) DebugReleaseSameDayKeys ¶
func (*Config) DefaultSymptomOnsetDaysAgo ¶ added in v0.16.0
func (*Config) KeyManagerConfig ¶
func (*Config) MaintenanceMode ¶ added in v0.17.0
func (*Config) MaxExposureKeys ¶
func (*Config) MaxIntervalStartAge ¶
func (*Config) MaxSameDayKeys ¶
func (*Config) MaxSymptomOnsetDays ¶
func (*Config) MaxValidSymptomOnsetReportDays ¶ added in v0.16.0
func (*Config) ObservabilityExporterConfig ¶
func (c *Config) ObservabilityExporterConfig() *observability.Config
func (*Config) SecretManagerConfig ¶
func (*Config) TruncateWindow ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.