Documentation
¶
Index ¶
- func Info() string
- func Init()
- type Authz
- type CHESSMetaData
- type DID
- type DataBookkeeping
- type DataManagement
- type Discovery
- type Encryption
- type Frontend
- type GinOptions
- type Globus
- type Kerberos
- type LDAP
- type ML
- type MLApi
- type MLBackend
- type MLHub
- type MaterialCommons
- type MetaData
- type MongoDB
- type OAuthRecord
- type OreCastMetaData
- type Publication
- type QL
- type S3
- type Services
- type SpecScans
- type SrvConfig
- type TrustedUser
- type WebServer
- type Zenodo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Authz ¶
type Authz struct {
WebServer `mapstructure:"WebServer"`
Encryption `mapstructure:"Encryption"`
TestMode bool `mapstructure:TestMode` // test mode
CheckLDAP bool `mapstructure:CheckLDAP` // check users scope in LDAP
DBUri string `mapstructure:"DBUri"` // database URI
ClientID string `mapstructure:"ClientId"`
ClientSecret string `mapstructure:"ClientSecret"`
Domain string `mapstructure:"Domain"`
TokenExpires int64 `mapstructure:TokenExpires` // expiration of token
}
Authz represents authz service configuration
type CHESSMetaData ¶
type CHESSMetaData struct {
WebServer `mapstructure:"WebServer"`
MongoDB `mapstructure:"MongoDB"`
LexiconFile string `mapstructure:"LexiconFile"` // lexicon file
TestMode bool `mapstructure:TestMode` // test mode
SchemaFiles []string `json:"SchemaFiles"` // schema files
SchemaRenewInterval int `json:"SchemaRenewInterval"` // schema renew interval
WebSectionsFile string `mapstructure:"WebSectionsFile"` // file for web form sections
OrderedSections []string `mapstructure:OrderedSections` // ordered sections for web UI
SkipKeys []string `mapstructure:SkipKeys` // keys to skip for web forms
}
CHESSMetaData represents CHESS MetaData configuration
type DID ¶ added in v0.1.6
type DID struct {
Attributes string `mapstructure:attributes` // did attributes, comma separated, default beamline,btr,cycle,sample
Separator string `mapstructure:separator` // did separator, default "/"
Divider string `mapstructure:divider` // did key-value divider, default "="
}
DID structure
type DataBookkeeping ¶
type DataBookkeeping struct {
WebServer `mapstructure:"WebServer"`
DBFile string `mapstructure:"DBFile"` // dbs db file with secrets
LexiconFile string `mapstructure:"LexiconFile"` // dbs lexicon file
MaxDBConnections int `mapstructure:"MaxDbConnections"` // maximum number of DB connections
MaxIdleConnections int `mapstructure:"MaxIdleConnections"` // maximum number of idle connections
}
DataBookkeeping represents data-bookkeeping service configuration
type DataManagement ¶
DataManagement represents data-management service configuration
type Discovery ¶
type Discovery struct {
WebServer `mapstructure:"WebServer"`
MongoDB `mapstructure:"MongoDB"`
Encryption `mapstructure:"Encryption"`
}
Discovery represents discovery service configuration
type Encryption ¶
type Encryption struct {
Secret string `mapstructure:"Secret"`
Cipher string `mapstructure:"Cipher"`
}
Encryption represents encryption configuration parameters
type Frontend ¶
type Frontend struct {
WebServer `mapstructure:"WebServer"`
// Aggregate results from all FOXDEN services
AggregateResults bool `mapstructure:"AggregateResults`
// OAuth parts
OAuth []OAuthRecord `mapstructure:"OAuth"` // oauth configurations
// captcha parts
CaptchaSecretKey string `mapstructure:"CaptchaSecretKey"` // re-captcha secret key
CaptchaPublicKey string `mapstructure:"CaptchaPublicKey"` // re-captcha public key
CaptchaVerifyUrl string `mapstructure:"CaptchaVerifyUrl"` // re-captcha verify url
// cookies parts
UserCookieExpires int64 `mapstructure:"UserCookieExpires"` // expiration of user cookie
// other options
TestMode bool `mapstructure:TestMode` // test mode
}
Frontend stores frontend configuration parameters
type GinOptions ¶
type GinOptions struct {
DisableConsoleColor bool `mapstructure:"DisableConsoleColor"` // gin console color mode
Production bool `mapstructure:"Production"` // production mode
Mode string `mapstructure:"Mode"` // gin mode: test, debug, release
}
GinOptions controls go-gin specific options
type Globus ¶ added in v0.3.9
type Globus struct {
ClientID string `mapstructure:"client_id"` // client id
ClientSecret string `mapstructure:"client_secret"` // client secret
TransferURL string `mapstructure:"transfer_url"` // globus transfer url
AuthURL string `mapstructure:"auth_url"` // globus auth url
}
Globug represents globus information
type Kerberos ¶
type Kerberos struct {
Krb5Conf string `mapstructure:Krb5Conf`
Keytab string `mapstructure:Keytab`
Realm string `mapstructure:Realm`
}
Kerberos defines kerberos optinos
type LDAP ¶ added in v0.2.0
type LDAP struct {
URL string `mapstructure:"url"` // ldap url
BaseDN string `mapstructure:"baseDN` // ldap baseDN
Login string `mapstructure:"login"` // LDAP login to use
Password string `mapstructure:"password"` // LDAP password to use
}
LDAP attributes
type ML ¶ added in v0.1.0
type ML struct {
MLBackends []MLBackend `json:"MLBackends"` // ML backends
StorageDir string `json:"StorageDir"`
}
ML defines ML configuration options
type MLApi ¶ added in v0.1.0
type MLApi struct {
Name string `json:"name"`
Method string `json:"method"`
Endpoint string `json:"endpoint"`
Accept string `json:"accept"`
}
MLAPI defines ML API structure
type MLBackend ¶ added in v0.1.0
type MLBackend struct {
Name string `json:"name"` // ML backend name, e.g. TFaaS
Type string `json:"type"` // ML backebd type, e.g. TensorFlow
URI string `json:"uri"` // ML backend URI, e.g. http://localhost:port
Apis []MLApi // ML APIs
}
MLBackend represents ML backend engine
type MLHub ¶ added in v0.1.0
type MLHub struct {
WebServer `mapstructure:"WebServer"`
MongoDB `mapstructure:"MongoDB"`
Encryption `mapstructure:"Encryption"`
ML `mapstructure:"ML"`
}
MLHub represents ML service configuration
type MaterialCommons ¶ added in v0.3.4
type MaterialCommons struct {
Url string `mapstructure:"Url"`
ApiKey string `mapstructure:"ApiKey"`
Token string `mapstructure:"Token"`
}
MaterialCommons represents MaterialCommons service configuration
type MetaData ¶
type MetaData struct {
WebServer `mapstructure:"WebServer"`
MongoDB `mapstructure:"MongoDB"`
LexiconFile string `mapstructure:"LexiconFile"` // lexicon file
}
MetaData represents metadata service configuration
type MongoDB ¶
type MongoDB struct {
DBName string `mapstructure:"DBName"` // database name
DBColl string `mapstructure:"DBColl"` // database collection
DBUri string `mapstructure:"DBUri"` // database URI
}
MongoDB represents MongoDB parameters
type OAuthRecord ¶
type OAuthRecord struct {
Provider string `mapstructure:"Provider"` // name of the provider
ClientID string `mapstructure:"ClientId"` // client id
ClientSecret string `mapstructure:"ClientSecret"` // client secret
RedirectURL string `mapstructure:"RedirectUrl"` // redirect url
}
OAuthRecord defines OAuth provider's credentials
type OreCastMetaData ¶
type OreCastMetaData struct {
WebServer `mapstructure:"WebServer"`
MongoDB `mapstructure:"MongoDB"`
}
OreCastMetaData represents OreCast MetaData configuration
type Publication ¶ added in v0.1.2
Publication represents Publication service configuration
type QL ¶ added in v0.2.1
type QL struct {
ServiceMapFile string `mapstructure:ServiceMapFile` // service map file name
Separator string `mapstructure:separator` // ql separator, default ":"
Verbose int `mapstructure:verbose` // verbosity level
}
QL structure
type S3 ¶ added in v0.0.9
type S3 struct {
AccessKey string `mapstructure:"AccessKey"`
AccessSecret string `mapstructure:"AccessSecret"`
Endpoint string `mapstructure:"Endpoint"`
UseSSL bool `mapstructure:"UseSSL"`
}
S3 defines s3 structure
type Services ¶
type Services struct {
FrontendURL string `mapstructure:"FrontendUrl"`
DiscoveryURL string `mapstructure:"DiscoveryUrl"`
MetaDataURL string `mapstructure:"MetaDataUrl"`
MLHubURL string `mapstructure:"MLHubUrl"`
DataManagementURL string `mapstructure:"DataManagementUrl"`
DataBookkeepingURL string `mapstructure:"DataBookkeepingUrl"`
AuthzURL string `mapstructure:"AuthzUrl"`
SpecScansURL string `mapstructure:"SpecScansUrl"`
PublicationURL string `mapstructure:"PublicationUrl"`
CHAPBookURL string `mapstructure:"CHAPBookUrl"`
}
Services represents services structure
type SpecScans ¶ added in v0.1.0
type SpecScans struct {
WebServer `mapstructure:"WebServer"`
MongoDB `mapstructure:"MongoDB"`
DBFile string `mapstructure:"DBFile"`
SchemaFile string `mapstructure:"SchemaFile"`
}
SpecScans represents SpecScansService configuration
type SrvConfig ¶
type SrvConfig struct {
QL `mapstructure:"QL"`
DID `mapstructure:"DID"`
LDAP `mapstructure:LDAP`
Frontend `mapstructure:"Frontend"`
Discovery `mapstructure:"Discovery"`
MetaData `mapstructure:"MetaData"`
MLHub `mapstructure:"MLHub"`
DataManagement `mapstructure:"DataManagement"`
DataBookkeeping `mapstructure:"DataBookkeeping"`
Authz `mapstructure:"Authz"`
Kerberos `mapstructure:"Kerberos"`
Services `mapstructure:"Services"`
Encryption `mapstructure:"Encryption"`
CHESSMetaData `mapstructure:"CHESSMetaData"`
OreCastMetaData `mapstructure:"OreCastMetaData"`
SpecScans `mapstructure:"SpecScansService"`
Publication `mapstructure:"PublicationService"`
Globus `mapstructure:"Globus"`
MaterialCommons `mapstructure:"MaterialCommons"`
TrustedUsers []TrustedUser `mapstructure:"TrustedUsers"`
}
SrvConfig represents configuration structure
var Config *SrvConfig
Config represnets configuration instance
func ParseConfig ¶
type TrustedUser ¶ added in v0.3.5
TrustedUser represents single trusted user information
type WebServer ¶
type WebServer struct {
// git server options
GinOptions `mapstructure:"GinOptions"`
// basic options
Port int `mapstructure:"Port"` // server port number
Verbose int `mapstructure:"Verbose"` // verbose output
Base string `mapstructure:"Base"` // base URL
StaticDir string `mapstructure:"StaticDir"` // speficy static dir location
LogFile string `mapstructure:"LogFile"` // server log file
LogLongFile bool `mapstructure:"LogLongFile"` // server log structure
// middleware server parts
LimiterPeriod string `mapstructure:"Rate"` // limiter rate value
LimiterHeader string `json:"limiter_header"` // limiter header to use
LimiterSkipList []string `json:"limiter_skip_list"` // limiter skip list
MetricsPrefix string `json:"metrics_prefix"` // metrics prefix used for prometheus
// etag options
Etag string `json:"etag"` // etag value to use for ETag generation
CacheControl string `json:"cache_control"` // Cache-Control value, e.g. max-age=300
// proxy parts
XForwardedHost string `mapstructure:"X-Forwarded-Host"` // X-Forwarded-Host field of HTTP request
XContentTypeOptions string `mapstructure:"X-Content-Type-Options"` // X-Content-Type-Options option
// TLS server parts
RootCAs string `mapstructure:"RootCAs"` // server Root CAs path
ServerCrt string `mapstructure:"ServerCert"` // server certificate
ServerKey string `mapstructure:"ServerKey"` // server certificate
DomainNames []string `mapstructure:"DomainNames"` // LetsEncrypt domain names
}
WebServer represents common web server configuration