Add site redirects (#552)

* feat(redirects): add redirects to sites

* chore(style): fixed coding style issues

* style: fix php-stan docblocks

* style: pint cleanup

* tests: fixed redirect test suite

* feat: vhosts include additional configs

* fix: use exact location matching

* - add enums
- use queues
- use vhost rather than separate conf files
- vhost formatter
- cleanup

* generate docs

---------

Co-authored-by: Saeed Vaziry <mr.saeedvaziry@gmail.com>
This commit is contained in:
Jamie Wood
2025-03-31 16:30:57 +01:00
committed by GitHub
parent 7882d2022c
commit f483f7fdca
53 changed files with 6944 additions and 4495 deletions

View File

@ -50,7 +50,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"name":"ea","server_id":null,"type":"allow","protocol":"tcp","port":41910,"source":"202.183.211.242","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null},{"id":null,"name":"iusto","server_id":null,"type":"allow","protocol":"tcp","port":60689,"source":"227.149.61.57","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}],"links":{"first":"\/?page=1","last":"\/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"name":"optio","server_id":null,"type":"allow","protocol":"tcp","port":52674,"source":"142.10.115.135","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null},{"id":null,"name":"dolores","server_id":null,"type":"allow","protocol":"tcp","port":34607,"source":"20.175.64.76","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}],"links":{"first":"\/?page=1","last":"\/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -58,7 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 8g15h66aPf3ZdvkEab4ceVD'
- 'Bearer vhcgVk5aa8de6fP3Z4E1Db6'
controller: null
method: null
route: null
@ -111,7 +111,7 @@ endpoints:
name: name
description: ''
required: true
example: autem
example: voluptas
type: string
enumValues: []
exampleWasSpecified: false
@ -121,7 +121,7 @@ endpoints:
name: type
description: ''
required: true
example: allow
example: deny
type: string
enumValues:
- allow
@ -133,7 +133,7 @@ endpoints:
name: protocol
description: ''
required: true
example: tcp
example: udp
type: string
enumValues:
- tcp
@ -145,7 +145,7 @@ endpoints:
name: port
description: ''
required: true
example: quas
example: qui
type: string
enumValues: []
exampleWasSpecified: false
@ -155,7 +155,7 @@ endpoints:
name: source
description: ''
required: false
example: blanditiis
example: amet
type: string
enumValues: []
exampleWasSpecified: false
@ -172,17 +172,17 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: autem
type: allow
protocol: tcp
port: quas
source: blanditiis
name: voluptas
type: deny
protocol: udp
port: qui
source: amet
mask: '0'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"name":"in","server_id":null,"type":"allow","protocol":"tcp","port":13253,"source":"245.228.81.208","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"name":"molestiae","server_id":null,"type":"allow","protocol":"tcp","port":26783,"source":"190.202.255.27","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -190,7 +190,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 8dhcE436Zbk6fgVDP1aa5ev'
- 'Bearer Z166cP5kab3eEhgD48Vvafd'
controller: null
method: null
route: null
@ -254,7 +254,7 @@ endpoints:
name: name
description: ''
required: true
example: earum
example: et
type: string
enumValues: []
exampleWasSpecified: false
@ -288,7 +288,7 @@ endpoints:
name: port
description: ''
required: true
example: ab
example: rerum
type: string
enumValues: []
exampleWasSpecified: false
@ -298,7 +298,7 @@ endpoints:
name: source
description: ''
required: false
example: possimus
example: sed
type: string
enumValues: []
exampleWasSpecified: false
@ -315,17 +315,17 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: earum
name: et
type: allow
protocol: tcp
port: ab
source: possimus
port: rerum
source: sed
mask: '0'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"name":"repudiandae","server_id":null,"type":"allow","protocol":"tcp","port":44250,"source":"243.200.88.169","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"name":"labore","server_id":null,"type":"allow","protocol":"tcp","port":29044,"source":"113.132.217.224","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -333,7 +333,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer ag6ebf3456hVkd8ca1PvEDZ'
- 'Bearer 6P31Vc845vhEbkaagZdDfe6'
controller: null
method: null
route: null
@ -398,7 +398,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"name":"quam","server_id":null,"type":"allow","protocol":"tcp","port":62505,"source":"73.254.77.244","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"name":"ipsa","server_id":null,"type":"allow","protocol":"tcp","port":50679,"source":"42.114.67.31","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -406,7 +406,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Paagd6D6fV5v4kZ31ebc8hE'
- 'Bearer VdDb3eEaagvh68Z1kc5fP46'
controller: null
method: null
route: null
@ -479,7 +479,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer avf16Vhb43dacPZge6D5k8E'
- 'Bearer ak3db6vef1DVEhacZ85g64P'
controller: null
method: null
route: null