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,209 @@
package schema
import (
"fmt"
"npm/internal/entity/certificate"
)
// This validation is strictly for Custom certificates
// and the combination of values that must be defined
func createCertificateCustom() string {
return fmt.Sprintf(`
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"name",
"domain_names"
],
"properties": {
"type": %s,
"name": %s,
"domain_names": %s,
"meta": {
"type": "object"
}
}
}`, strictString("custom"), stringMinMax(1, 100), domainNames())
}
// This validation is strictly for HTTP certificates
// and the combination of values that must be defined
func createCertificateHTTP() string {
return fmt.Sprintf(`
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"certificate_authority_id",
"name",
"domain_names"
],
"properties": {
"type": %s,
"certificate_authority_id": %s,
"name": %s,
"domain_names": %s,
"meta": {
"type": "object"
},
"is_ecc": {
"type": "integer",
"minimum": 0,
"maximum": 1
}
}
}`, strictString("http"), intMinOne, stringMinMax(1, 100), domainNames())
}
// This validation is strictly for DNS certificates
// and the combination of values that must be defined
func createCertificateDNS() string {
return fmt.Sprintf(`
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"certificate_authority_id",
"dns_provider_id",
"name",
"domain_names"
],
"properties": {
"type": %s,
"certificate_authority_id": %s,
"dns_provider_id": %s,
"name": %s,
"domain_names": %s,
"meta": {
"type": "object"
},
"is_ecc": {
"type": "integer",
"minimum": 0,
"maximum": 1
}
}
}`, strictString("dns"), intMinOne, intMinOne, stringMinMax(1, 100), domainNames())
}
// This validation is strictly for MKCERT certificates
// and the combination of values that must be defined
func createCertificateMkcert() string {
return fmt.Sprintf(`
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"name",
"domain_names"
],
"properties": {
"type": %s,
"name": %s,
"domain_names": %s,
"meta": {
"type": "object"
}
}
}`, strictString("mkcert"), stringMinMax(1, 100), domainNames())
}
func updateCertificateHTTP() string {
return fmt.Sprintf(`
{
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"certificate_authority_id": %s,
"name": %s,
"domain_names": %s,
"meta": {
"type": "object"
}
}
}`, intMinOne, stringMinMax(1, 100), domainNames())
}
func updateCertificateDNS() string {
return fmt.Sprintf(`
{
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"certificate_authority_id": %s,
"dns_provider_id": %s,
"name": %s,
"domain_names": %s,
"meta": {
"type": "object"
}
}
}`, intMinOne, intMinOne, stringMinMax(1, 100), domainNames())
}
func updateCertificateCustom() string {
return fmt.Sprintf(`
{
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"name": %s,
"domain_names": %s,
"meta": {
"type": "object"
}
}
}`, stringMinMax(1, 100), domainNames())
}
func updateCertificateMkcert() string {
return fmt.Sprintf(`
{
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"name": %s,
"domain_names": %s,
"meta": {
"type": "object"
}
}
}`, stringMinMax(1, 100), domainNames())
}
// CreateCertificate is the schema for incoming data validation
func CreateCertificate() string {
return fmt.Sprintf(`
{
"oneOf": [%s, %s, %s, %s]
}`, createCertificateHTTP(), createCertificateDNS(), createCertificateCustom(), createCertificateMkcert())
}
// UpdateCertificate is the schema for incoming data validation
func UpdateCertificate(certificateType string) string {
switch certificateType {
case certificate.TypeHTTP:
return updateCertificateHTTP()
case certificate.TypeDNS:
return updateCertificateDNS()
case certificate.TypeCustom:
return updateCertificateCustom()
case certificate.TypeMkcert:
return updateCertificateMkcert()
default:
return fmt.Sprintf(`
{
"oneOf": [%s, %s, %s, %s]
}`, updateCertificateHTTP(), updateCertificateDNS(), updateCertificateCustom(), updateCertificateMkcert())
}
}