config

package
v0.1.44 Latest Latest
Warning

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

Go to latest
Published: Dec 7, 2021 License: MIT Imports: 7 Imported by: 37

Documentation

Index

Constants

View Source
const (
	DBKindSqlite   = "sqlite"
	DBKindPostgres = "postgres"
	DBKindMysql    = "mysql"
)

Supported database kinds

Variables

This section is empty.

Functions

func Parse

func Parse(filename string, output Configurable) error

Parse -

Types

type Config

type Config struct {
	Version     string                `yaml:"version" validate:"required"`
	Database    Database              `yaml:"database" validate:"required"`
	DataSources map[string]DataSource `yaml:"datasources"`
	Contracts   map[string]Contract   `yaml:"contracts"`
	Hasura      *Hasura               `yaml:"hasura" validate:"omitempty"`
	Prometheus  *Prometheus           `yaml:"prometheus" validate:"omitempty"`
}

Config

func Load

func Load(filename string) (*Config, error)

Load - load default config from `filename`

func (*Config) Substitute

func (c *Config) Substitute() error

Substitute -

type Configurable

type Configurable interface {
	Substitute() error
}

Configurable -

type Contract

type Contract struct {
	Address  string `yaml:"address" validate:"required,len=36"`
	TypeName string `yaml:"typename"`
}

Contracts -

type DataSource

type DataSource struct {
	Kind string `yaml:"kind"`
	URL  string `yaml:"url" validate:"required,url"`
}

DataSource -

type Database

type Database struct {
	Path       string `yaml:"path" validate:"required_if=Kind sqlite"`
	Kind       string `yaml:"kind" validate:"required,oneof=sqlite postgres mysql"`
	Host       string `yaml:"host" validate:"required_unless=Kind sqlite"`
	Port       int    `yaml:"port" validate:"required_unless=Kind sqlite,gt=-1,lt=65535"`
	User       string `yaml:"user" validate:"required_unless=Kind sqlite"`
	Password   string `yaml:"password" validate:"required_unless=Kind sqlite"`
	Database   string `yaml:"database" validate:"required_unless=Kind sqlite"`
	SchemaName string `yaml:"schema_name"`
}

Database

type Hasura

type Hasura struct {
	URL                string `yaml:"url" validate:"required,url"`
	Secret             string `yaml:"admin_secret" validate:"required"`
	RowsLimit          uint64 `yaml:"select_limit" validate:"gt=0,lt=1000"`
	EnableAggregations bool   `yaml:"allow_aggregation"`
	Rest               *bool  `yaml:"rest"`
}

Hasura -

type Prometheus added in v0.1.36

type Prometheus struct {
	URL string `yaml:"url" validate:"required"`
}

Prometheus -

Jump to

Keyboard shortcuts

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