mirror of
				https://github.com/NginxProxyManager/nginx-proxy-manager.git
				synced 2025-10-31 15:53:33 +00:00 
			
		
		
		
	v2.1.0 (#293)
* Fix wrapping when too many hosts are shown (#207) * Update npm packages, fixes CVE-2019-10757 * Revert some breaking packages * Major overhaul - Docker buildx support in CI - Cypress API Testing in CI - Restructured folder layout (insert clean face meme) - Added Swagger documentation and validate API against that (to be completed) - Use common base image for all supported archs, which includes updated nginx with ipv6 support - Updated certbot and changes required for it - Large amount of Hosts names will wrap in UI - Updated packages for frontend - Version bump 2.1.0 * Updated documentation * Fix JWT expire time going crazy. Now set to 1day * Backend JS formatting rules * Remove v1 importer, I doubt anyone is using v1 anymore * Added backend formatting rules and enforce them in Jenkins builds * Fix CI, doesn't need a tty * Thanks bcrypt. Why can't you just be normal. * Cleanup after syntax check Co-authored-by: Marcelo Castagna <margaale@users.noreply.github.com>
This commit is contained in:
		
							
								
								
									
										45
									
								
								backend/lib/validator/api.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								backend/lib/validator/api.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | ||||
| const error  = require('../error'); | ||||
| const path   = require('path'); | ||||
| const parser = require('json-schema-ref-parser'); | ||||
|  | ||||
| const ajv = require('ajv')({ | ||||
| 	verbose:        true, | ||||
| 	validateSchema: true, | ||||
| 	allErrors:      false, | ||||
| 	format:         'full', | ||||
| 	coerceTypes:    true | ||||
| }); | ||||
|  | ||||
| /** | ||||
|  * @param {Object} schema | ||||
|  * @param {Object} payload | ||||
|  * @returns {Promise} | ||||
|  */ | ||||
| function apiValidator (schema, payload/*, description*/) { | ||||
| 	return new Promise(function Promise_apiValidator (resolve, reject) { | ||||
| 		if (typeof payload === 'undefined') { | ||||
| 			reject(new error.ValidationError('Payload is undefined')); | ||||
| 		} | ||||
|  | ||||
| 		let validate = ajv.compile(schema); | ||||
| 		let valid    = validate(payload); | ||||
|  | ||||
| 		if (valid && !validate.errors) { | ||||
| 			resolve(payload); | ||||
| 		} else { | ||||
| 			let message = ajv.errorsText(validate.errors); | ||||
| 			let err     = new error.ValidationError(message); | ||||
| 			err.debug   = [validate.errors, payload]; | ||||
| 			reject(err); | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
|  | ||||
| apiValidator.loadSchemas = parser | ||||
| 	.dereference(path.resolve('schema/index.json')) | ||||
| 	.then((schema) => { | ||||
| 		ajv.addSchema(schema); | ||||
| 		return schema; | ||||
| 	}); | ||||
|  | ||||
| module.exports = apiValidator; | ||||
		Reference in New Issue
	
	Block a user