Documentation

Overview

    Package export defines the handlers for managing exposure key exporting.

    Package export contains OpenCensus metrics and views for export operations

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func MarshalExportFile

    func MarshalExportFile(eb *model.ExportBatch, exposures, revisedExposures []*publishmodel.Exposure, fileNum int32, splitBatch bool, signers []*Signer) ([]byte, error)

      MarshalExportFile converts the inputs into an encoded byte array.

      func UnmarshalExportFile

      func UnmarshalExportFile(zippedProtoPayload []byte) (*export.TemporaryExposureKeyExport, []byte, error)

        UnmarshalExportFile extracts the protobuf encoded exposure key present in the zip archived payload. Returns the parsed TemporaryExposureKeyExport protocol buffer message, the SHA256 digest of the signed content and/or an error if error. The digest is useful in validating the signature as it returns the deigest of the content that was signed when the archive was created.

        func UnmarshalSignatureFile

        func UnmarshalSignatureFile(zippedProtoPayload []byte) (*export.TEKSignatureList, error)

          UnmarshalSignatureFile extracts the protobuf encode dsignatures.

          Types

          type Config

          type Config struct {
          	Database              database.Config
          	KeyManager            keys.Config
          	SecretManager         secrets.Config
          	Storage               storage.Config
          	ObservabilityExporter observability.Config
          
          	Port               string        `env:"PORT, default=8080"`
          	CreateTimeout      time.Duration `env:"CREATE_BATCHES_TIMEOUT, default=5m"`
          	WorkerTimeout      time.Duration `env:"WORKER_TIMEOUT, default=5m"`
          	MinRecords         int           `env:"EXPORT_FILE_MIN_RECORDS, default=1000"`
          	PaddingRange       int           `env:"EXPORT_FILE_PADDING_RANGE, default=100"`
          	MaxRecords         int           `env:"EXPORT_FILE_MAX_RECORDS, default=500000"`
          	MaxInsertBatchSize int           `env:"MAX_INSERT_BATCH_SIZE, default=100"`
          	TruncateWindow     time.Duration `env:"TRUNCATE_WINDOW, default=1h"`
          	MinWindowAge       time.Duration `env:"MIN_WINDOW_AGE, default=2h"`
          	TTL                time.Duration `env:"CLEANUP_TTL, default=336h"`
          	// ReprocessCount needs to be incremented by one every time you go back and
          	// regenerate previously exported files.
          	ReprocessCount uint `env:"REPROCESS_COUNT, default=0"`
          }

            Config represents the configuration and associated environment variables for the export components.

            func (*Config) BlobstoreConfig

            func (c *Config) BlobstoreConfig() *storage.Config

            func (*Config) DatabaseConfig

            func (c *Config) DatabaseConfig() *database.Config

            func (*Config) KeyManagerConfig

            func (c *Config) KeyManagerConfig() *keys.Config

            func (*Config) ObservabilityExporterConfig

            func (c *Config) ObservabilityExporterConfig() *observability.Config

            func (*Config) RepressGeneration

            func (c *Config) RepressGeneration() int64

            func (*Config) SecretManagerConfig

            func (c *Config) SecretManagerConfig() *secrets.Config

            type Server

            type Server struct {
            	// contains filtered or unexported fields
            }

              Server hosts end points to manage export batches.

              func NewServer

              func NewServer(cfg *Config, env *serverenv.ServerEnv) (*Server, error)

                NewServer makes a Server.

                func (*Server) Routes

                func (s *Server) Routes(ctx context.Context) *mux.Router

                  Routes defines and returns the routes for this server.

                  type Signer

                  type Signer struct {
                  	SignatureInfo *model.SignatureInfo
                  	Signer        crypto.Signer
                  }

                  Directories

                  Path Synopsis
                  Package database is a database interface to export.
                  Package database is a database interface to export.
                  Package model is a model abstraction of exports.
                  Package model is a model abstraction of exports.