mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-08 17:32:35 +00:00
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:
@ -1,19 +1,19 @@
|
||||
## Autogenerated by Scribe. DO NOT MODIFY.
|
||||
|
||||
name: servers
|
||||
name: redirects
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/projects/{project_id}/servers'
|
||||
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects'
|
||||
metadata:
|
||||
groupName: servers
|
||||
groupName: redirects
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: list
|
||||
description: 'Get all servers in a project.'
|
||||
title: index
|
||||
description: 'Get all redirects.'
|
||||
authenticated: true
|
||||
custom: []
|
||||
headers:
|
||||
@ -31,8 +31,30 @@ endpoints:
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
server_id:
|
||||
name: server_id
|
||||
description: 'The ID of the server.'
|
||||
required: true
|
||||
example: 29
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
site_id:
|
||||
name: site_id
|
||||
description: 'The ID of the site.'
|
||||
required: true
|
||||
example: 11
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
project_id: 1
|
||||
server_id: 29
|
||||
site_id: 11
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
@ -41,7 +63,7 @@ endpoints:
|
||||
responses:
|
||||
-
|
||||
status: 200
|
||||
content: '{"data":[{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Prof. Wyatt Powlowski IV","ssh_user":"vito","ip":"33.53.217.82","local_ip":"227.155.11.76","port":22,"os":"ubuntu_22","type":"regular","type_data":null,"provider":"custom","provider_data":null,"public_key":"test","status":"ready","auto_update":null,"available_updates":0,"security_updates":null,"progress":100,"progress_step":null,"updates":null,"last_update_check":null,"created_at":null,"updated_at":null},{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Guiseppe D''Amore","ssh_user":"vito","ip":"41.138.98.159","local_ip":"78.178.81.109","port":22,"os":"ubuntu_22","type":"regular","type_data":null,"provider":"custom","provider_data":null,"public_key":"test","status":"ready","auto_update":null,"available_updates":0,"security_updates":null,"progress":100,"progress_step":null,"updates":null,"last_update_check":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":"« Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next »","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
|
||||
content: '{"data":[{"id":null,"site_id":null,"mode":301,"from":"error","to":"https:\/\/www.pfannerstill.com\/facere-est-totam-laudantium-in-illo-sequi","status":"ready","created_at":null,"updated_at":null},{"id":null,"site_id":null,"mode":301,"from":"repellat","to":"http:\/\/gislason.biz\/sed-corrupti-et-id-earum-qui-consequatur-quis-voluptas.html","status":"ready","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":"« Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next »","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
|
||||
headers: []
|
||||
description: ''
|
||||
custom: []
|
||||
@ -49,7 +71,7 @@ endpoints:
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer aaEkbd3D8gZ6f5v1ePhcV46'
|
||||
- 'Bearer Pava668DdZfk4cVEg3eb5h1'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
@ -57,14 +79,14 @@ endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/projects/{project_id}/servers'
|
||||
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects'
|
||||
metadata:
|
||||
groupName: servers
|
||||
groupName: redirects
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: create
|
||||
description: 'Create a new server.'
|
||||
description: 'Create a new redirect.'
|
||||
authenticated: true
|
||||
custom: []
|
||||
headers:
|
||||
@ -82,14 +104,36 @@ endpoints:
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
server_id:
|
||||
name: server_id
|
||||
description: 'The ID of the server.'
|
||||
required: true
|
||||
example: 29
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
site_id:
|
||||
name: site_id
|
||||
description: 'The ID of the site.'
|
||||
required: true
|
||||
example: 11
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
project_id: 1
|
||||
server_id: 29
|
||||
site_id: 11
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters:
|
||||
provider:
|
||||
name: provider
|
||||
description: 'The server provider type'
|
||||
from:
|
||||
name: from
|
||||
description: ''
|
||||
required: true
|
||||
example: vel
|
||||
type: string
|
||||
@ -97,273 +141,38 @@ endpoints:
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
server_provider:
|
||||
name: server_provider
|
||||
description: 'If the provider is not custom, the ID of the server provider profile'
|
||||
to:
|
||||
name: to
|
||||
description: ''
|
||||
required: true
|
||||
example: hetzner
|
||||
example: ea
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
mode:
|
||||
name: mode
|
||||
description: ''
|
||||
required: true
|
||||
example: 307
|
||||
type: string
|
||||
enumValues:
|
||||
- custom
|
||||
- hetzner
|
||||
- digitalocean
|
||||
- linode
|
||||
- vultr
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
region:
|
||||
name: region
|
||||
description: 'Provider region if the provider is not custom'
|
||||
required: true
|
||||
example: voluptatibus
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
plan:
|
||||
name: plan
|
||||
description: 'Provider plan if the provider is not custom'
|
||||
required: true
|
||||
example: ducimus
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
ip:
|
||||
name: ip
|
||||
description: 'SSH IP address if the provider is custom'
|
||||
required: true
|
||||
example: dolores
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
port:
|
||||
name: port
|
||||
description: 'SSH Port if the provider is custom'
|
||||
required: true
|
||||
example: ratione
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
name:
|
||||
name: name
|
||||
description: 'The name of the server.'
|
||||
required: true
|
||||
example: in
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
os:
|
||||
name: os
|
||||
description: 'The os of the server'
|
||||
required: true
|
||||
example: cumque
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
webserver:
|
||||
name: webserver
|
||||
description: 'Web server'
|
||||
required: true
|
||||
example: nginx
|
||||
type: string
|
||||
enumValues:
|
||||
- none
|
||||
- nginx
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
database:
|
||||
name: database
|
||||
description: Database
|
||||
required: true
|
||||
example: mysql80
|
||||
type: string
|
||||
enumValues:
|
||||
- none
|
||||
- mysql57
|
||||
- mysql80
|
||||
- mariadb103
|
||||
- mariadb104
|
||||
- mariadb103
|
||||
- postgresql12
|
||||
- postgresql13
|
||||
- postgresql14
|
||||
- postgresql15
|
||||
- postgresql16
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
php:
|
||||
name: php
|
||||
description: 'PHP version'
|
||||
required: true
|
||||
example: '7.4'
|
||||
type: string
|
||||
enumValues:
|
||||
- '7.0'
|
||||
- '7.1'
|
||||
- '7.2'
|
||||
- '7.3'
|
||||
- '7.4'
|
||||
- '8.0'
|
||||
- '8.1'
|
||||
- '8.2'
|
||||
- '8.3'
|
||||
- 301
|
||||
- 302
|
||||
- 307
|
||||
- 308
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanBodyParameters:
|
||||
provider: vel
|
||||
server_provider: hetzner
|
||||
region: voluptatibus
|
||||
plan: ducimus
|
||||
ip: dolores
|
||||
port: ratione
|
||||
name: in
|
||||
os: cumque
|
||||
webserver: nginx
|
||||
database: mysql80
|
||||
php: '7.4'
|
||||
from: vel
|
||||
to: ea
|
||||
mode: 307
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 200
|
||||
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Anissa McDermott","ssh_user":"vito","ip":"212.15.34.173","local_ip":"142.201.95.242","port":22,"os":"ubuntu_22","type":"regular","type_data":null,"provider":"custom","provider_data":null,"public_key":"test","status":"ready","auto_update":null,"available_updates":0,"security_updates":null,"progress":100,"progress_step":null,"updates":null,"last_update_check":null,"created_at":null,"updated_at":null}'
|
||||
headers: []
|
||||
description: ''
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6cgZPdbVD4fvae15khaE638'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/projects/{project_id}/servers/{id}'
|
||||
metadata:
|
||||
groupName: servers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: show
|
||||
description: 'Get a server by ID.'
|
||||
authenticated: true
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer YOUR-API-KEY'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
project_id:
|
||||
name: project_id
|
||||
description: 'The ID of the project.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the server.'
|
||||
required: true
|
||||
example: 29
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
project_id: 1
|
||||
id: 29
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 200
|
||||
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Prof. Newton Wintheiser Jr.","ssh_user":"vito","ip":"243.154.251.36","local_ip":"198.224.194.65","port":22,"os":"ubuntu_22","type":"regular","type_data":null,"provider":"custom","provider_data":null,"public_key":"test","status":"ready","auto_update":null,"available_updates":0,"security_updates":null,"progress":100,"progress_step":null,"updates":null,"last_update_check":null,"created_at":null,"updated_at":null}'
|
||||
headers: []
|
||||
description: ''
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer d5Ebc1ZeDv8aPk466aV3gfh'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/projects/{project_id}/servers/{server_id}/reboot'
|
||||
metadata:
|
||||
groupName: servers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: reboot
|
||||
description: 'Reboot a server.'
|
||||
authenticated: true
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer YOUR-API-KEY'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
project_id:
|
||||
name: project_id
|
||||
description: 'The ID of the project.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
server_id:
|
||||
name: server_id
|
||||
description: 'The ID of the server.'
|
||||
required: true
|
||||
example: 29
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
project_id: 1
|
||||
server_id: 29
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 204
|
||||
content: null
|
||||
headers: []
|
||||
description: ''
|
||||
@ -372,69 +181,7 @@ endpoints:
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer Vav31kZcfg86bdE6ha5DeP4'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/projects/{project_id}/servers/{server_id}/upgrade'
|
||||
metadata:
|
||||
groupName: servers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: upgrade
|
||||
description: 'Upgrade server.'
|
||||
authenticated: true
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer YOUR-API-KEY'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
project_id:
|
||||
name: project_id
|
||||
description: 'The ID of the project.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
server_id:
|
||||
name: server_id
|
||||
description: 'The ID of the server.'
|
||||
required: true
|
||||
example: 29
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
project_id: 1
|
||||
server_id: 29
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 204
|
||||
content: null
|
||||
headers: []
|
||||
description: ''
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 14bV3dgZhD6cvEefkPa586a'
|
||||
- 'Bearer 14Vg6Dce6aEh8kPbav5Z3fd'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
@ -442,14 +189,14 @@ endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/projects/{project_id}/servers/{server_id}'
|
||||
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects/{redirect_id}'
|
||||
metadata:
|
||||
groupName: servers
|
||||
groupName: redirects
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: delete
|
||||
description: 'Delete server.'
|
||||
description: 'Delete a redirect.'
|
||||
authenticated: true
|
||||
custom: []
|
||||
headers:
|
||||
@ -477,9 +224,31 @@ endpoints:
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
site_id:
|
||||
name: site_id
|
||||
description: 'The ID of the site.'
|
||||
required: true
|
||||
example: 11
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
redirect_id:
|
||||
name: redirect_id
|
||||
description: 'The ID of the redirect.'
|
||||
required: true
|
||||
example: 9
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
project_id: 1
|
||||
server_id: 29
|
||||
site_id: 11
|
||||
redirect_id: 9
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
@ -496,7 +265,7 @@ endpoints:
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer Vv6EbPh186eg3D5fadackZ4'
|
||||
- 'Bearer vabZDk1c6fV46Ea3edhP8g5'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
|
Reference in New Issue
Block a user