Moved v3 code from NginxProxyManager/nginx-proxy-manager-3 to NginxProxyManager/nginx-proxy-manager

This commit is contained in:
Jamie Curnow
2022-05-12 08:47:31 +10:00
parent 4db34f5894
commit 2110ecc382
830 changed files with 38168 additions and 36635 deletions
.dockerignore.gitignore.versionDEV-README.mdJenkinsfileREADME.md
backend
.editorconfig.eslintrc.json.gitignore.golangci.yml.nancy-ignore
.vscode
README.mdTaskfile.ymlapp.js
cmd
server
config
db.js
doc
embed
go.modgo.sumindex.js
internal
access-list.js
acme
api
audit-log.js
cache
certificate.js
config
database
dead-host.js
dnsproviders
entity
errors
host.jsip_ranges.js
jwt
logger
model
nginx.js
nginx
proxy-host.jsredirection-host.jsreport.jssetting.js
state
stream.jstoken.js
types
user.js
util
validator
worker
knexfile.js
lib
logger.jsmigrate.js
migrations
models
nodemon.jsonpackage.json
routes
schema
scripts
setup.js
templates
yarn.lock
docker
docs
frontend
.babelrc.env.development.eslintrc.gitignore.prettierrcREADME.mdcheck-locales.js
fonts
globalSetup.js
html
imagesjest.eslint.js
js
package.json
public
scss
src
App.test.tsxApp.tsxRouter.tsx
api
components
context
declarations.d.ts
fonts
hooks
img
index.scssindex.tsx
locale
modals
modules
pages
react-app-env.d.ts
styles
theme
tsconfig.jsonwebpack.config.jsyarn.lock
global
scripts
test

@ -0,0 +1,135 @@
package dnsproviders
import (
"errors"
"npm/internal/util"
)
type providerField struct {
Name string `json:"name"`
Type string `json:"type"`
IsRequired bool `json:"is_required"`
IsSecret bool `json:"is_secret"`
MetaKey string `json:"meta_key"`
EnvKey string `json:"-"` // not exposed in api
}
// Provider is a simple struct
type Provider struct {
AcmeshName string `json:"acmesh_name"`
Schema string `json:"-"`
Fields []providerField `json:"fields"`
}
// GetAcmeEnvVars will map the meta given to the env var required for
// acme.sh to use this dns provider
func (p *Provider) GetAcmeEnvVars(meta interface{}) map[string]string {
res := make(map[string]string)
for _, field := range p.Fields {
if acmeShEnvValue, found := util.FindItemInInterface(field.MetaKey, meta); found {
res[field.EnvKey] = acmeShEnvValue.(string)
}
}
return res
}
// List returns an array of providers
func List() []Provider {
return []Provider{
getDNSAd(),
getDNSAli(),
getDNSAws(),
getDNSCf(),
getDNSCloudns(),
getDNSCx(),
getDNSCyon(),
getDNSDgon(),
getDNSDNSimple(),
getDNSDp(),
getDNSDuckDNS(),
getDNSDyn(),
getDNSDynu(),
getDNSFreeDNS(),
getDNSGandiLiveDNS(),
getDNSGd(),
getDNSHe(),
getDNSInfoblox(),
getDNSIspconfig(),
getDNSLinodeV4(),
getDNSLua(),
getDNSMe(),
getDNSNamecom(),
getDNSOne(),
getDNSPDNS(),
getDNSUnoeuro(),
getDNSVscale(),
getDNSYandex(),
}
}
// GetAll returns all the configured providers
func GetAll() map[string]Provider {
mp := make(map[string]Provider)
items := List()
for _, item := range items {
mp[item.AcmeshName] = item
}
return mp
}
// Get returns a single provider by name
func Get(provider string) (Provider, error) {
all := GetAll()
if item, found := all[provider]; found {
return item, nil
}
return Provider{}, errors.New("provider_not_found")
}
// GetAllSchemas returns a flat array with just the schemas
func GetAllSchemas() []string {
items := List()
mp := make([]string, 0)
for _, item := range items {
mp = append(mp, item.Schema)
}
return mp
}
const commonKeySchema = `
{
"type": "object",
"required": [
"api_key"
],
"additionalProperties": false,
"properties": {
"api_key": {
"type": "string",
"minLength": 1
}
}
}
`
// nolint: gosec
const commonKeySecretSchema = `
{
"type": "object",
"required": [
"api_key",
"secret"
],
"additionalProperties": false,
"properties": {
"api_key": {
"type": "string",
"minLength": 1
},
"secret": {
"type": "string",
"minLength": 1
}
}
}
`