mirror of
				https://github.com/NginxProxyManager/nginx-proxy-manager.git
				synced 2025-10-31 07:43: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:
		
							
								
								
									
										205
									
								
								backend/migrations/20180618015850_initial.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										205
									
								
								backend/migrations/20180618015850_initial.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,205 @@ | ||||
| const migrate_name = 'initial-schema'; | ||||
| const logger       = require('../logger').migrate; | ||||
|  | ||||
| /** | ||||
|  * Migrate | ||||
|  * | ||||
|  * @see http://knexjs.org/#Schema | ||||
|  * | ||||
|  * @param   {Object}  knex | ||||
|  * @param   {Promise} Promise | ||||
|  * @returns {Promise} | ||||
|  */ | ||||
| exports.up = function (knex/*, Promise*/) { | ||||
| 	logger.info('[' + migrate_name + '] Migrating Up...'); | ||||
|  | ||||
| 	return knex.schema.createTable('auth', (table) => { | ||||
| 		table.increments().primary(); | ||||
| 		table.dateTime('created_on').notNull(); | ||||
| 		table.dateTime('modified_on').notNull(); | ||||
| 		table.integer('user_id').notNull().unsigned(); | ||||
| 		table.string('type', 30).notNull(); | ||||
| 		table.string('secret').notNull(); | ||||
| 		table.json('meta').notNull(); | ||||
| 		table.integer('is_deleted').notNull().unsigned().defaultTo(0); | ||||
| 	}) | ||||
| 		.then(() => { | ||||
| 			logger.info('[' + migrate_name + '] auth Table created'); | ||||
|  | ||||
| 			return knex.schema.createTable('user', (table) => { | ||||
| 				table.increments().primary(); | ||||
| 				table.dateTime('created_on').notNull(); | ||||
| 				table.dateTime('modified_on').notNull(); | ||||
| 				table.integer('is_deleted').notNull().unsigned().defaultTo(0); | ||||
| 				table.integer('is_disabled').notNull().unsigned().defaultTo(0); | ||||
| 				table.string('email').notNull(); | ||||
| 				table.string('name').notNull(); | ||||
| 				table.string('nickname').notNull(); | ||||
| 				table.string('avatar').notNull(); | ||||
| 				table.json('roles').notNull(); | ||||
| 			}); | ||||
| 		}) | ||||
| 		.then(() => { | ||||
| 			logger.info('[' + migrate_name + '] user Table created'); | ||||
|  | ||||
| 			return knex.schema.createTable('user_permission', (table) => { | ||||
| 				table.increments().primary(); | ||||
| 				table.dateTime('created_on').notNull(); | ||||
| 				table.dateTime('modified_on').notNull(); | ||||
| 				table.integer('user_id').notNull().unsigned(); | ||||
| 				table.string('visibility').notNull(); | ||||
| 				table.string('proxy_hosts').notNull(); | ||||
| 				table.string('redirection_hosts').notNull(); | ||||
| 				table.string('dead_hosts').notNull(); | ||||
| 				table.string('streams').notNull(); | ||||
| 				table.string('access_lists').notNull(); | ||||
| 				table.string('certificates').notNull(); | ||||
| 				table.unique('user_id'); | ||||
| 			}); | ||||
| 		}) | ||||
| 		.then(() => { | ||||
| 			logger.info('[' + migrate_name + '] user_permission Table created'); | ||||
|  | ||||
| 			return knex.schema.createTable('proxy_host', (table) => { | ||||
| 				table.increments().primary(); | ||||
| 				table.dateTime('created_on').notNull(); | ||||
| 				table.dateTime('modified_on').notNull(); | ||||
| 				table.integer('owner_user_id').notNull().unsigned(); | ||||
| 				table.integer('is_deleted').notNull().unsigned().defaultTo(0); | ||||
| 				table.json('domain_names').notNull(); | ||||
| 				table.string('forward_ip').notNull(); | ||||
| 				table.integer('forward_port').notNull().unsigned(); | ||||
| 				table.integer('access_list_id').notNull().unsigned().defaultTo(0); | ||||
| 				table.integer('certificate_id').notNull().unsigned().defaultTo(0); | ||||
| 				table.integer('ssl_forced').notNull().unsigned().defaultTo(0); | ||||
| 				table.integer('caching_enabled').notNull().unsigned().defaultTo(0); | ||||
| 				table.integer('block_exploits').notNull().unsigned().defaultTo(0); | ||||
| 				table.text('advanced_config').notNull().defaultTo(''); | ||||
| 				table.json('meta').notNull(); | ||||
| 			}); | ||||
| 		}) | ||||
| 		.then(() => { | ||||
| 			logger.info('[' + migrate_name + '] proxy_host Table created'); | ||||
|  | ||||
| 			return knex.schema.createTable('redirection_host', (table) => { | ||||
| 				table.increments().primary(); | ||||
| 				table.dateTime('created_on').notNull(); | ||||
| 				table.dateTime('modified_on').notNull(); | ||||
| 				table.integer('owner_user_id').notNull().unsigned(); | ||||
| 				table.integer('is_deleted').notNull().unsigned().defaultTo(0); | ||||
| 				table.json('domain_names').notNull(); | ||||
| 				table.string('forward_domain_name').notNull(); | ||||
| 				table.integer('preserve_path').notNull().unsigned().defaultTo(0); | ||||
| 				table.integer('certificate_id').notNull().unsigned().defaultTo(0); | ||||
| 				table.integer('ssl_forced').notNull().unsigned().defaultTo(0); | ||||
| 				table.integer('block_exploits').notNull().unsigned().defaultTo(0); | ||||
| 				table.text('advanced_config').notNull().defaultTo(''); | ||||
| 				table.json('meta').notNull(); | ||||
| 			}); | ||||
| 		}) | ||||
| 		.then(() => { | ||||
| 			logger.info('[' + migrate_name + '] redirection_host Table created'); | ||||
|  | ||||
| 			return knex.schema.createTable('dead_host', (table) => { | ||||
| 				table.increments().primary(); | ||||
| 				table.dateTime('created_on').notNull(); | ||||
| 				table.dateTime('modified_on').notNull(); | ||||
| 				table.integer('owner_user_id').notNull().unsigned(); | ||||
| 				table.integer('is_deleted').notNull().unsigned().defaultTo(0); | ||||
| 				table.json('domain_names').notNull(); | ||||
| 				table.integer('certificate_id').notNull().unsigned().defaultTo(0); | ||||
| 				table.integer('ssl_forced').notNull().unsigned().defaultTo(0); | ||||
| 				table.text('advanced_config').notNull().defaultTo(''); | ||||
| 				table.json('meta').notNull(); | ||||
| 			}); | ||||
| 		}) | ||||
| 		.then(() => { | ||||
| 			logger.info('[' + migrate_name + '] dead_host Table created'); | ||||
|  | ||||
| 			return knex.schema.createTable('stream', (table) => { | ||||
| 				table.increments().primary(); | ||||
| 				table.dateTime('created_on').notNull(); | ||||
| 				table.dateTime('modified_on').notNull(); | ||||
| 				table.integer('owner_user_id').notNull().unsigned(); | ||||
| 				table.integer('is_deleted').notNull().unsigned().defaultTo(0); | ||||
| 				table.integer('incoming_port').notNull().unsigned(); | ||||
| 				table.string('forward_ip').notNull(); | ||||
| 				table.integer('forwarding_port').notNull().unsigned(); | ||||
| 				table.integer('tcp_forwarding').notNull().unsigned().defaultTo(0); | ||||
| 				table.integer('udp_forwarding').notNull().unsigned().defaultTo(0); | ||||
| 				table.json('meta').notNull(); | ||||
| 			}); | ||||
| 		}) | ||||
| 		.then(() => { | ||||
| 			logger.info('[' + migrate_name + '] stream Table created'); | ||||
|  | ||||
| 			return knex.schema.createTable('access_list', (table) => { | ||||
| 				table.increments().primary(); | ||||
| 				table.dateTime('created_on').notNull(); | ||||
| 				table.dateTime('modified_on').notNull(); | ||||
| 				table.integer('owner_user_id').notNull().unsigned(); | ||||
| 				table.integer('is_deleted').notNull().unsigned().defaultTo(0); | ||||
| 				table.string('name').notNull(); | ||||
| 				table.json('meta').notNull(); | ||||
| 			}); | ||||
| 		}) | ||||
| 		.then(() => { | ||||
| 			logger.info('[' + migrate_name + '] access_list Table created'); | ||||
|  | ||||
| 			return knex.schema.createTable('certificate', (table) => { | ||||
| 				table.increments().primary(); | ||||
| 				table.dateTime('created_on').notNull(); | ||||
| 				table.dateTime('modified_on').notNull(); | ||||
| 				table.integer('owner_user_id').notNull().unsigned(); | ||||
| 				table.integer('is_deleted').notNull().unsigned().defaultTo(0); | ||||
| 				table.string('provider').notNull(); | ||||
| 				table.string('nice_name').notNull().defaultTo(''); | ||||
| 				table.json('domain_names').notNull(); | ||||
| 				table.dateTime('expires_on').notNull(); | ||||
| 				table.json('meta').notNull(); | ||||
| 			}); | ||||
| 		}) | ||||
| 		.then(() => { | ||||
| 			logger.info('[' + migrate_name + '] certificate Table created'); | ||||
|  | ||||
| 			return knex.schema.createTable('access_list_auth', (table) => { | ||||
| 				table.increments().primary(); | ||||
| 				table.dateTime('created_on').notNull(); | ||||
| 				table.dateTime('modified_on').notNull(); | ||||
| 				table.integer('access_list_id').notNull().unsigned(); | ||||
| 				table.string('username').notNull(); | ||||
| 				table.string('password').notNull(); | ||||
| 				table.json('meta').notNull(); | ||||
| 			}); | ||||
| 		}) | ||||
| 		.then(() => { | ||||
| 			logger.info('[' + migrate_name + '] access_list_auth Table created'); | ||||
|  | ||||
| 			return knex.schema.createTable('audit_log', (table) => { | ||||
| 				table.increments().primary(); | ||||
| 				table.dateTime('created_on').notNull(); | ||||
| 				table.dateTime('modified_on').notNull(); | ||||
| 				table.integer('user_id').notNull().unsigned(); | ||||
| 				table.string('object_type').notNull().defaultTo(''); | ||||
| 				table.integer('object_id').notNull().unsigned().defaultTo(0); | ||||
| 				table.string('action').notNull(); | ||||
| 				table.json('meta').notNull(); | ||||
| 			}); | ||||
| 		}) | ||||
| 		.then(() => { | ||||
| 			logger.info('[' + migrate_name + '] audit_log Table created'); | ||||
| 		}); | ||||
|  | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * Undo Migrate | ||||
|  * | ||||
|  * @param   {Object}  knex | ||||
|  * @param   {Promise} Promise | ||||
|  * @returns {Promise} | ||||
|  */ | ||||
| exports.down = function (knex, Promise) { | ||||
| 	logger.warn('[' + migrate_name + '] You can\'t migrate down the initial data.'); | ||||
| 	return Promise.resolve(true); | ||||
| }; | ||||
		Reference in New Issue
	
	Block a user