2016-12-30 11:04:01 +01:00
|
|
|
/*
|
|
|
|
Copyright (c) 2016 VMware, Inc. All Rights Reserved.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
package models
|
|
|
|
|
|
|
|
// Authentication ...
|
|
|
|
type Authentication struct {
|
|
|
|
Mode string `json:"mode"`
|
|
|
|
SelfRegistration bool `json:"self_registration"`
|
|
|
|
LDAP *LDAP `json:"ldap,omitempty"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// LDAP ...
|
|
|
|
type LDAP struct {
|
|
|
|
URL string `json:"url"`
|
|
|
|
SearchDN string `json:"search_dn"`
|
|
|
|
SearchPwd string `json:"search_pwd"`
|
|
|
|
BaseDN string `json:"base_dn"`
|
|
|
|
Filter string `json:"filter"`
|
|
|
|
UID string `json:"uid"`
|
|
|
|
Scope int `json:"scope"`
|
2017-01-12 10:41:14 +01:00
|
|
|
Timeout int `json:"timeout"` // in second
|
2016-12-30 11:04:01 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
// Database ...
|
|
|
|
type Database struct {
|
|
|
|
Type string `json:"type"`
|
|
|
|
MySQL *MySQL `json:"mysql,omitempty"`
|
|
|
|
SQLite *SQLite `json:"sqlite,omitempty"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// MySQL ...
|
|
|
|
type MySQL struct {
|
|
|
|
Host string `json:"host"`
|
|
|
|
Port int `json:"port"`
|
|
|
|
Username string `json:"username"`
|
2017-01-12 11:29:02 +01:00
|
|
|
Password string `json:"password,omitempty"`
|
2016-12-30 11:04:01 +01:00
|
|
|
Database string `json:"database"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// SQLite ...
|
|
|
|
type SQLite struct {
|
|
|
|
File string `json:"file"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// Email ...
|
|
|
|
type Email struct {
|
|
|
|
Host string `json:"host"`
|
|
|
|
Port string `json:"port"`
|
|
|
|
Username string `json:"username"`
|
|
|
|
Password string `json:"password"`
|
2017-01-12 11:29:02 +01:00
|
|
|
SSL bool `json:"ssl"`
|
2016-12-30 11:04:01 +01:00
|
|
|
Identity string `json:"identity"`
|
|
|
|
From string `json:"from"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// Registry ...
|
|
|
|
type Registry struct {
|
|
|
|
URL string `json:"url"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// TokenService ...
|
|
|
|
type TokenService struct {
|
|
|
|
URL string `json:"url"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// SystemCfg holds all configurations of system
|
|
|
|
type SystemCfg struct {
|
|
|
|
DomainName string `json:"domain_name"` // Harbor external URL: protocal://host:port
|
|
|
|
Authentication *Authentication `json:"authentication"`
|
|
|
|
Database *Database `json:"database"`
|
|
|
|
TokenService *TokenService `json:"token_service"`
|
|
|
|
Registry *Registry `json:"registry"`
|
|
|
|
Email *Email `json:"email"`
|
|
|
|
VerifyRemoteCert bool `json:"verify_remote_cert"`
|
|
|
|
ProjectCreationRestriction string `json:"project_creation_restriction"`
|
|
|
|
MaxJobWorkers int `json:"max_job_workers"`
|
|
|
|
JobLogDir string `json:"job_log_dir"`
|
2017-01-12 11:29:02 +01:00
|
|
|
InitialAdminPwd string `json:"initial_admin_pwd,omitempty"`
|
2016-12-30 11:04:01 +01:00
|
|
|
CompressJS bool `json:"compress_js"` //TODO remove
|
|
|
|
TokenExpiration int `json:"token_expiration"` // in minute
|
2017-01-12 11:29:02 +01:00
|
|
|
SecretKey string `json:"secret_key,omitempty"`
|
2016-12-30 11:04:01 +01:00
|
|
|
CfgExpiration int `json:"cfg_expiration"`
|
|
|
|
}
|