Documentation
¶
Index ¶
- Variables
- func InitConfig()
- func SetCfgFile(cfgFile string)
- func SplitURI(uri string) (base, name string)
- type BuildVersionInfo
- type Cache
- type DataSets
- type EAD
- type ElasticSearch
- func (es *ElasticSearch) FragmentIndexName(orgID string) string
- func (es *ElasticSearch) GetDigitalObjectIndexName(orgID string) string
- func (es *ElasticSearch) GetIndexName(orgID string) string
- func (es *ElasticSearch) GetSuggestIndexName(orgID string) string
- func (es *ElasticSearch) GetV1IndexName(orgID string) string
- func (es *ElasticSearch) HasAuthentication() bool
- type HTTP
- type ImageProxy
- type LOD
- type Logging
- type NameSpace
- type NameSpaceMap
- func (n *NameSpaceMap) Add(prefix, base string)
- func (n *NameSpaceMap) AddNameSpace(ns NameSpace)
- func (n *NameSpaceMap) ByPrefix() map[string]string
- func (n *NameSpaceMap) DeleteBaseURI(base string)
- func (n *NameSpaceMap) DeletePrefix(prefix string)
- func (n *NameSpaceMap) GetBaseURI(prefix string) (base string, ok bool)
- func (n *NameSpaceMap) GetPrefix(baseURI string) (prefix string, ok bool)
- func (n *NameSpaceMap) GetSearchLabel(uri string) (string, error)
- func (n *NameSpaceMap) Len() (prefixes, baseURIs int)
- func (n *NameSpaceMap) Load(c *RawConfig)
- type OAIPMH
- type PostHook
- type RDF
- type RDFTag
- type RDFTagMap
- type RawConfig
- type SiteMap
- type WebResource
Constants ¶
This section is empty.
Variables ¶
var ( // Config is the general configuration object Config RawConfig // CfgFile is the path to the config file CfgFile string )
Functions ¶
func SetCfgFile ¶ added in v0.2.0
func SetCfgFile(cfgFile string)
Types ¶
type BuildVersionInfo ¶
type BuildVersionInfo struct {
Version string `json:"version"`
Commit string `json:"commit"`
BuildAgent string `json:"buildAgent"`
BuildDate string `json:"buildDate"`
BuildID string `json:"buildID"`
}
BuildVersionInfo holds all the version information
func NewBuildVersionInfo ¶
func NewBuildVersionInfo(version, commit, buildagent, builddate string) *BuildVersionInfo
NewBuildVersionInfo creates a BuildVersionInfo struct
type Cache ¶
type Cache struct {
Enabled bool `json:"enabled"`
LifeWindowMinutes int `json:"lifeWindowMinutes"`
APIPrefix string `json:"apiPrefix"`
StripPrefix bool `json:"stripPrefix"`
CacheDomain string `json:"cacheDomain"`
HardMaxCacheSize int `json:"hardMaxCacheSize"`
MaxEntrySize int `json:"maxEntrySize"`
}
Cache is the configuration of the BigCache implementation
type EAD ¶
type EAD struct {
CacheDir string `json:"cacheDir"`
SearchURL string `json:"searchURL"`
GenreFormDefault string `json:"genreFormDefault"`
TreeFields []string `json:"treeFields"`
SearchFields []string `json:"searchFields"`
}
EAD holds all the configuration for the EAD endpoint
type ElasticSearch ¶
type ElasticSearch struct {
Urls []string `json:"urls"`
Enabled bool `json:"enabled"`
IndexName string `json:"indexName"`
DigitalObjectSuffix string `json:"digitalObjectSuffix"`
Proxy bool `json:"proxy"`
Fragments bool `json:"fragments"`
IndexV1 bool `json:"indexV1"` // exclusive with v2 indexing
EnableTrace bool `json:"enableTrace"`
EnableInfo bool `json:"enableInfo"`
SpecKey string `json:"specKey"`
RevisionKey string `json:"revisionKey"`
OrgIDKey string `json:"orgIDKey"`
UserName string `json:"userName"`
Password string `json:"password"`
FacetSize int `json:"facetSize"`
MinimumShouldMatch string `json:"minimumShouldMatch"`
Workers int `json:"workers"`
Shards int `json:"shards"`
Replicas int `json:"replicas"`
RequestTimeout int `json:"requestTimeout"`
EnableSearchAfter bool `json:"enableSearchAfter"`
TrackTotalHits bool `json:"trackTotalHits"`
IndexTypes []string `json:"indexTypes"`
MaxTreeSize int `json:"maxTreeSize"`
OrphanWait int `json:"orphanWait"`
}
ElasticSearch holds all the configuration values It is bound by Viper.
func (*ElasticSearch) FragmentIndexName ¶
func (es *ElasticSearch) FragmentIndexName(orgID string) string
func (*ElasticSearch) GetDigitalObjectIndexName ¶ added in v0.2.1
func (es *ElasticSearch) GetDigitalObjectIndexName(orgID string) string
func (*ElasticSearch) GetIndexName ¶
func (es *ElasticSearch) GetIndexName(orgID string) string
GetIndexName returns the lowercased indexname. This inforced correct behavior when creating an index in ElasticSearch.
func (*ElasticSearch) GetSuggestIndexName ¶ added in v0.3.0
func (es *ElasticSearch) GetSuggestIndexName(orgID string) string
func (*ElasticSearch) GetV1IndexName ¶ added in v0.1.8
func (es *ElasticSearch) GetV1IndexName(orgID string) string
func (*ElasticSearch) HasAuthentication ¶
func (es *ElasticSearch) HasAuthentication() bool
HasAuthentication returns if ElasticSearch has authentication enabled.
type HTTP ¶
type HTTP struct {
Port int `json:"port" mapstructure:"port"`
StaticDir string `json:"staticDir"` // the relative path to the static directory to serve documentation.
ProxyTLS bool `json:"proxyTLS"`
}
HTTP holds all the configuration for the http server subcommand
type ImageProxy ¶
type ImageProxy struct {
Enabled bool `json:"enabled"` // Make the imageproxy endpoint available
CacheDir string `json:"cacheDir"` // The path to the imageCache
Referrer []string `json:"referrer"` // A list of allowed referrers. If empty allow all.
Whitelist []string `json:"whitelist"` // A list of allowed remote hosts. If empty allow all.
ScaleUp bool `json:"scaleUp"` // Allow images to scale beyond their original dimensions.
TimeOut int `json:"timeout"` // timelimit for request served by this proxy. 0 is for no timeout
Deepzoom bool `json:"deepzoom"` // Enable deepzoom of remote images.
ProxyPrefix string `json:"proxyPrefix"` // The prefix where we mount the imageproxy. default: imageproxy. default: imageproxy.
DefaultImagePath string `json:"defaultImagePath"` // Default image in case the image cannot be found.
}
ImageProxy holds all the configuration for the ImageProxy functionality
type LOD ¶
type LOD struct {
Enabled bool `json:"enabled"` // Make the lod endpoint available
Resource string `json:"resource"` // the 303 redirect entry point. This is where the content negotiation happens
HTML string `json:"html"` // the endpoint that renders the data as formatted HTML
RDF string `json:"rdf"` // the endpoint that renders the RDF data in the requested RDF format. Currently, JSON-LD and N-triples are supported
SingleEndpoint string `json:"singleEndpoint"` // when this is set it overrides the other endpoints
HTMLRedirectRegex string `json:"redirectregex"` // the regular expression to convert the subject uri to the uri for the external Page view
}
LOD holds all the configuration for the Linked Open Data (LOD) functionality
type Logging ¶
type Logging struct {
DevMode bool `json:"devmode"`
SentryDSN string `json:"sentrydsn"`
Level string `json:"level"`
WithCaller bool `json:"withCaller"`
ConsoleLogger bool `json:"consoleLogger"`
}
Logging holds all the logging and path configuration
type NameSpace ¶
NameSpace is a container for Namespaces base URLs and prefixes This is used by resolving namespaces in the RDF conversions
type NameSpaceMap ¶
type NameSpaceMap struct {
// contains filtered or unexported fields
}
NameSpaceMap contains all the namespaces
func NewConfigNameSpaceMap ¶
func NewConfigNameSpaceMap(c *RawConfig) *NameSpaceMap
NewConfigNameSpaceMap creates a map from the NameSpaces defined in the config
func NewNameSpaceMap ¶
func NewNameSpaceMap() *NameSpaceMap
NewNameSpaceMap creates a new NameSpaceMap
func (*NameSpaceMap) Add ¶
func (n *NameSpaceMap) Add(prefix, base string)
Add adds a namespace to the namespace Map
func (*NameSpaceMap) AddNameSpace ¶
func (n *NameSpaceMap) AddNameSpace(ns NameSpace)
AddNameSpace is a convenience function to add NameSpace objects to the Map
func (*NameSpaceMap) ByPrefix ¶
func (n *NameSpaceMap) ByPrefix() map[string]string
ByPrefix returns the map with prefixes as keys
func (*NameSpaceMap) DeleteBaseURI ¶
func (n *NameSpaceMap) DeleteBaseURI(base string)
DeleteBaseURI removes a namespace from the NameSpaceMap
func (*NameSpaceMap) DeletePrefix ¶
func (n *NameSpaceMap) DeletePrefix(prefix string)
DeletePrefix removes a namespace from the NameSpaceMap
func (*NameSpaceMap) GetBaseURI ¶
func (n *NameSpaceMap) GetBaseURI(prefix string) (base string, ok bool)
GetBaseURI returns the base URI from the prefix
func (*NameSpaceMap) GetPrefix ¶
func (n *NameSpaceMap) GetPrefix(baseURI string) (prefix string, ok bool)
GetPrefix returns the prefix for a base URI
func (*NameSpaceMap) GetSearchLabel ¶
func (n *NameSpaceMap) GetSearchLabel(uri string) (string, error)
GetSearchLabel returns the search label for a Predicate URI
func (*NameSpaceMap) Len ¶
func (n *NameSpaceMap) Len() (prefixes, baseURIs int)
Len counts the number of keys in the Map
func (*NameSpaceMap) Load ¶
func (n *NameSpaceMap) Load(c *RawConfig)
Load loads the namespaces from the config object
type OAIPMH ¶
type OAIPMH struct {
// Make the oai-pmh endpoint available
Enabled bool `json:"enabled"`
// AdminEmails has a list of the admin emails of this endpoint
AdminEmails []string `json:"adminEmails"`
// RepositoryName is the name of the OAI-PMH repossitory
RepositoryName string `json:"repositoryName"`
HarvestDelay int `json:"harvestDelay"`
EadHarvestURL string `json:"eadHarvestURL"`
MetsHarvestURL string `json:"metsHarvestURL"`
MetsDownloadFmt string `json:"metsDownloadFmt"`
}
OAIPMH holds all the configuration options for the OAI-PMH endpoint
type PostHook ¶
type PostHook struct {
Name string `json:"name"`
ExcludeSpec []string `json:"excludeSpec"`
URL string `json:"url"`
OrgID string `json:"orgID"`
APIKey string `json:"apiKey"`
UserName string `json:"userName"`
Password string `json:"password"`
CustomWait int `json:"customWait"`
}
PostHook contains the configuration for the JSON-LD posthook configuration
type RDF ¶
type RDF struct {
SparqlEnabled bool `json:"sparqlEnabled"` // Enable the SPARQL proxy
SparqlHost string `json:"sparqlHost"` // the base-url to the SPARQL endpoint including the scheme and the port
SparqlPath string `json:"sparqlPath"` // the relative path of the endpoint. This can should contain the database name that is injected when the sparql endpoint is build
SparqlUpdatePath string `json:"sparqlUpdatePath"` // the relative path of the update endpoint. This can should contain the database name that is injected when the sparql endpoint is build
GraphStorePath string `json:"dataPath"` // the relative GraphStore path of the endpoint. This can should contain the database name that is injected when the sparql endpoint is build
BaseURL string `json:"baseUrl"` // the RDF baseUrl used for minting new URIs (should not include scheme)
BaseScheme string `json:"baseScheme"` // the scheme (http or https) used in the baseURL
RDFStoreEnabled bool `json:"rdfStoreEnabled"` // Store to Triple Store while saving RDF
// the RDF entryPoints. Lookups are made on the fully qualified URIs. It is sometimes needed to support other baseUrls as well.
// The entry-points need to be fully qualified, i.e. with their scheme.
RoutedEntryPoints []string `json:"RoutedEntryPoints"`
Tags string `json:"tags" mapstructure:"tags"`
DefaultFormat string `json:"defaultFormat"`
RDFStoreTags []string `json:"rdfStoreTags"` // the tags that trigger storage in the triple-store
}
RDF holds all the configuration for SPARQL queries and RDF conversions
func (*RDF) HasStoreTag ¶
type RDFTag ¶
type RDFTag struct {
Title []string `json:"title"`
Label []string `json:"label"`
Owner []string `json:"owner"`
Thumbnail []string `json:"thumbnail"`
LandingPage []string `json:"landingPage"`
Description []string `json:"description"`
Subject []string `json:"subject"`
Date []string `json:"date"`
Collection []string `json:"collection"`
SubCollectection []string `json:"subCollectection"`
ObjectType []string `json:"objectType"`
ObjectID []string `json:"objectID"`
Creator []string `json:"creator"`
LatLong []string `json:"latLong"`
IsoDate []string `json:"isoDate"`
DateRange []string `json:"dateRange"`
Integer []string `json:"integer"`
IntegerRange []string `json:"integerRange"`
}
RDFTag holds tag information how to tag predicate values
type RDFTagMap ¶
RDFTagMap contains all the URIs that trigger indexing labels
func NewDataSetTagMap ¶ added in v0.2.0
type RawConfig ¶
type RawConfig struct {
HTTP `json:"http"`
ElasticSearch `json:"elasticsearch"`
Logging `json:"logging"`
RDF `json:"rdf"`
OAIPMH `json:"oaipmh"`
WebResource `json:"webresource"`
ImageProxy `json:"imageproxy"`
LOD `json:"lod"`
NameSpaces []NameSpace `json:"namespaces"`
NameSpaceMap *NameSpaceMap `json:"nameSpaceMap"`
RDFTag `json:"rdftag"`
PostHook []PostHook `json:"postHook"`
Cache `json:"cache"`
RDFTagMap *RDFTagMap `json:"rdfTagMap"`
SiteMap `json:"siteMap"`
EAD `json:"ead"`
DataSetTag map[string]DataSets `json:"dataSetTag"`
DatasetTagMap *RDFTagMap
Logger *zerolog.Logger `json:"logger"`
}
RawConfig holds all the configuration blocks. These are bound from cli, Environment variables or configuration files by Viper.
func (*RawConfig) GetGraphStoreEndpoint ¶
GetGraphStoreEndpoint builds the GraphStore endpoint from the RDF Config object. When the dbName is empty the OrgId from the configuration is used.
func (*RawConfig) GetSparqlEndpoint ¶
GetSparqlEndpoint builds the SPARQL endpoint from the RDF Config object. When the dbName is empty the OrgId from the configuration is used.
func (*RawConfig) GetSparqlUpdateEndpoint ¶
GetSparqlUpdateEndpoint builds the SPARQL Update endpoint from the RDF Config object. When the dbName is empty the OrgId from the configuration is used.
type SiteMap ¶
type SiteMap struct {
Enabled bool `json:"enabled"`
BaseDir string `json:"baseDir"`
BaseURL string `json:"baseURL"`
Gzip bool `json:"gzip"`
}
SiteMap holds all the configuration for the sitemap generation
type WebResource ¶
type WebResource struct {
Enabled bool `json:"enabled"` // Make the webresource endpoint available
WebResourceDir string `json:"sourceDir"` // Target directory for the webresources
CacheResourceDir string `json:"cacheDir"` // cache directory for the webresources
MediaManagerHost string `json:"mediaManagerHost"` // the domain to build the derivatives
SmallDefault string `json:"smallDefault"`
MediumDefault string `json:"mediumDefault"`
LargeDefault string `json:"largeDefault"`
MaxSize int32 `json:"maxSize"`
ResolveRemoteWebResources bool `json:"resolveRemoteWebResources"`
// contains filtered or unexported fields
}
WebResource holds all the configuration options for the WebResource endpoint