config

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2023 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const KafkaTLSProtocolFlag = "TLS"

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	BindAddr                   string              `envconfig:"BIND_ADDR"`
	GracefulShutdownTimeout    time.Duration       `envconfig:"GRACEFUL_SHUTDOWN_TIMEOUT"`
	HealthCheckInterval        time.Duration       `envconfig:"HEALTHCHECK_INTERVAL"`
	HealthCheckCriticalTimeout time.Duration       `envconfig:"HEALTHCHECK_CRITICAL_TIMEOUT"`
	SitemapGenerationFrequency time.Duration       `envconfig:"SITEMAP_GENERATION_FREQUENCY"`
	SitemapGenerationTimeout   time.Duration       `envconfig:"SITEMAP_GENERATION_TIMEOUT"`
	RobotsFilePath             map[Language]string `envconfig:"ROBOTS_FILE_PATH"`
	KafkaConfig                KafkaConfig
	OpenSearchConfig           OpenSearchConfig
	SitemapSaveLocation        string              `envconfig:"SITEMAP_SAVE_LOCATION"` // "local" or "s3", default: "local"
	SitemapLocalFile           map[Language]string `envconfig:"SITEMAP_LOCAL_FILE"`
	PublishingSitemapLocalFile string              `envconfig:"PUBLISHING_SITEMAP_LOCAL_FILE"`
	PublishingSitemapMaxSize   int                 `envconfig:"PUBLISHING_SITEMAP_MAX_SIZE"`
	S3Config                   S3Config
	ZebedeeURL                 string `envconfig:"ZEBEDEE_URL"`
	DpOnsURLHostNameEn         string `envconfig:"DP_ONS_URL_HOSTNAME_ENGLISH"`
	DpOnsURLHostNameCy         string `envconfig:"DP_ONS_URL_HOSTNAME_WELSH"`
	Debug                      bool   `envconfig:"SITEMAP_DEBUG_ENABLED"`
}

Config represents service configuration for dp-sitemap

func Get

func Get() (*Config, error)

Get returns the default config with any modifications through environment variables

type KafkaConfig

type KafkaConfig struct {
	Brokers             []string `envconfig:"KAFKA_ADDR"`
	Version             string   `envconfig:"KAFKA_VERSION"`
	OffsetOldest        bool     `envconfig:"KAFKA_OFFSET_OLDEST"`
	SecProtocol         string   `envconfig:"KAFKA_SEC_PROTO"`
	SecCACerts          string   `envconfig:"KAFKA_SEC_CA_CERTS"`
	SecClientKey        string   `envconfig:"KAFKA_SEC_CLIENT_KEY"    json:"-"`
	SecClientCert       string   `envconfig:"KAFKA_SEC_CLIENT_CERT"`
	SecSkipVerify       bool     `envconfig:"KAFKA_SEC_SKIP_VERIFY"`
	NumWorkers          int      `envconfig:"KAFKA_NUM_WORKERS"`
	ContentUpdatedGroup string   `envconfig:"KAFKA_CONTENT_UPDATED_GROUP"`
	ContentUpdatedTopic string   `envconfig:"KAFKA_CONTENT_UPDATED_TOPIC"`
}

KafkaConfig contains the config required to connect to Kafka TODO: change "hello-called" to your topic (config field name, env var name, default value later)

type Language

type Language string
const (
	English Language = "en"
	Welsh   Language = "cy"
)

func (Language) String

func (l Language) String() string

type OpenSearchConfig

type OpenSearchConfig struct {
	APIURL                string        `envconfig:"OPENSEARCH_API_URL"`
	SitemapIndex          string        `envconfig:"OPENSEARCH_SITEMAP_INDEX"`
	ScrollTimeout         time.Duration `envconfig:"OPENSEARCH_SCROLL_TIMEOUT"`
	ScrollSize            int           `envconfig:"OPENSEARCH_SCROLL_SIZE"`
	DebugFirstPageOnly    bool          `envconfig:"OPENSEARCH_DEBUG_FIRST_PAGE_ONLY"` // only fetch first page of results with a size dictated by the scroll size setting
	Signer                bool          `envconfig:"OPENSEARCH_SIGNER"`
	SignerFilename        string        `envconfig:"OPENSEARCH_SIGNER_AWS_FILENAME"`
	SignerProfile         string        `envconfig:"OPENSEARCH_SIGNER_AWS_PROFILE"`
	SignerRegion          string        `envconfig:"OPENSEARCH_SIGNER_AWS_REGION"`
	SignerService         string        `envconfig:"OPENSEARCH_SIGNER_AWS_SERVICE"`
	TLSInsecureSkipVerify bool          `envconfig:"OPENSEARCH_TLS_INSECURE_SKIP_VERIFY"`
}

type S3Config

type S3Config struct {
	UploadBucketName         string              `envconfig:"S3_UPLOAD_BUCKET_NAME"`
	SitemapFileKey           map[Language]string `envconfig:"S3_SITEMAP_FILE_KEY"`
	PublishingSitemapFileKey string              `envconfig:"S3_PUBLISHING_SITEMAP_FILE_KEY"`
	AwsRegion                string              `envconfig:"S3_AWS_REGION"`
	LocalstackHost           string              `envconfig:"S3_LOCALSTACK_HOST"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL