directories

package
v0.2.7 Latest Latest
Warning

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

Go to latest
Published: May 23, 2022 License: AGPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var APIDirectorySettingsForm = forms.Form{
	Fields: []forms.Field{
		{
			Name: "endpoints",
			Validators: []forms.Validator{
				forms.IsStringList{},
			},
		},
		{
			Name: "server_names",
			Validators: []forms.Validator{
				forms.IsOptional{},
				forms.IsStringList{},
			},
		},
		{
			Name: "cache_entries_for",
			Validators: []forms.Validator{
				forms.IsOptional{Default: 5},
				forms.IsInteger{
					HasMin: true,
					Min:    0,
					HasMax: true,
					Max:    3600,
				},
			},
		},
		{
			Name: "jsonrpc_client",
			Validators: []forms.Validator{
				forms.IsStringMap{
					Form: &jsonrpc.JSONRPCClientSettingsForm,
				},
			},
		},
		{
			Name: "ca_certificate_files",
			Validators: []forms.Validator{
				forms.IsList{
					Validators: []forms.Validator{
						forms.IsString{},
					},
				},
			},
		},
		{
			Name: "ca_intermediate_certificate_files",
			Validators: []forms.Validator{
				forms.IsOptional{},
				forms.IsList{
					Validators: []forms.Validator{
						forms.IsString{},
					},
				},
			},
		},
	},
}
View Source
var Directories = eps.DirectoryDefinitions{
	"api": eps.DirectoryDefinition{
		Name:              "API-Based Service Directory",
		Description:       "Loads the service directory via a JSON-RPC API",
		Maker:             MakeAPIDirectory,
		SettingsValidator: APIDirectorySettingsValidator,
	},
	"json": eps.DirectoryDefinition{
		Name:              "JSON-Based Service Directory",
		Description:       "Loads the service directory from a JSON file",
		Maker:             MakeJSONDirectory,
		SettingsValidator: JSONDirectorySettingsValidator,
	},
}
View Source
var JSONDirectorySettingsForm = forms.Form{
	Fields: []forms.Field{
		{
			Name: "path",
			Validators: []forms.Validator{
				forms.IsString{},
			},
		},
	},
}
View Source
var JSONRecordsForm = forms.Form{
	Fields: []forms.Field{
		{
			Name: "records",
			Validators: []forms.Validator{
				forms.IsList{
					Validators: []forms.Validator{
						forms.IsStringMap{
							Form: &epsForms.ChangeRecordForm,
						},
					},
				},
			},
		},
	},
}
View Source
var UpdateForm = forms.Form{
	Fields: []forms.Field{
		{
			Name: "records",
			Validators: []forms.Validator{
				forms.IsList{
					Validators: []forms.Validator{
						forms.IsStringMap{
							Form: &epsForms.SignedChangeRecordForm,
						},
					},
				},
			},
		},
	},
}

Functions

func APIDirectorySettingsValidator

func APIDirectorySettingsValidator(settings map[string]interface{}) (interface{}, error)

func JSONDirectorySettingsValidator

func JSONDirectorySettingsValidator(settings map[string]interface{}) (interface{}, error)

func MakeAPIDirectory

func MakeAPIDirectory(name string, settings interface{}) (eps.Directory, error)

func MakeJSONDirectory

func MakeJSONDirectory(name string, settings interface{}) (eps.Directory, error)

Types

type APIDirectory

type APIDirectory struct {
	eps.BaseDirectory
	// contains filtered or unexported fields
}

func (*APIDirectory) Entries

func (f *APIDirectory) Entries(query *eps.DirectoryQuery) ([]*eps.DirectoryEntry, error)

func (*APIDirectory) EntryFor

func (f *APIDirectory) EntryFor(name string) (*eps.DirectoryEntry, error)

func (*APIDirectory) OwnEntry

func (f *APIDirectory) OwnEntry() (*eps.DirectoryEntry, error)

func (*APIDirectory) Submit

func (f *APIDirectory) Submit(signedChangeRecords []*eps.SignedChangeRecord) error

func (*APIDirectory) Tip

type APIDirectorySettings

type APIDirectorySettings struct {
	Endpoints                      []string                       `json:"endpoints"`
	ServerNames                    []string                       `json:"server_names"`
	JSONRPCClient                  *jsonrpc.JSONRPCClientSettings `json:"jsonrpc_client"`
	CACertificateFiles             []string                       `json:"ca_certificate_files"`
	CAIntermediateCertificateFiles []string                       `json:"ca_intermediate_certificate_files"`
	CacheEntriesFor                int64                          `json:"cache_entries_for"`
}

type CacheEntry

type CacheEntry struct {
	Entry     *eps.DirectoryEntry
	FetchedAt time.Time
}

type DirectoryCache

type DirectoryCache struct {
	Entries []*CacheEntry
}

type JSONDirectory

type JSONDirectory struct {
	eps.BaseDirectory
	// contains filtered or unexported fields
}

func (*JSONDirectory) Entries

func (f *JSONDirectory) Entries(query *eps.DirectoryQuery) ([]*eps.DirectoryEntry, error)

func (*JSONDirectory) EntryFor

func (f *JSONDirectory) EntryFor(name string) (*eps.DirectoryEntry, error)

func (*JSONDirectory) OwnEntry

func (f *JSONDirectory) OwnEntry() (*eps.DirectoryEntry, error)

type JSONDirectorySettings

type JSONDirectorySettings struct {
	Path string `json:"path"`
}

type Records

type Records struct {
	Records []*eps.ChangeRecord `json:"records"`
}

type UpdateRecords

type UpdateRecords struct {
	Records []*eps.SignedChangeRecord `json:"records"`
}

Jump to

Keyboard shortcuts

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