211 lines
7.4 KiB
YAML
211 lines
7.4 KiB
YAML
id: deploy
|
|
type: PageHeaderMenu
|
|
properties:
|
|
title: Deploy
|
|
|
|
layout:
|
|
contentJustify: center
|
|
|
|
areas:
|
|
content:
|
|
blocks:
|
|
- id: content
|
|
type: Card
|
|
layout:
|
|
size: 1000
|
|
contentGutter: 10
|
|
blocks:
|
|
- id: title
|
|
type: Title
|
|
layout:
|
|
span: 24
|
|
properties:
|
|
content: Deploy
|
|
- id: leftcolumn
|
|
type: Box
|
|
layout:
|
|
span: 12
|
|
contentGutter: 10
|
|
blocks:
|
|
- id: macaddress
|
|
required: true
|
|
type: TextInput
|
|
properties:
|
|
title: MAC Address
|
|
placeholder: 00:00:00:00:00:00
|
|
validate:
|
|
- status: error
|
|
message: Enter a valid MAC address
|
|
pass:
|
|
_regex: ^(?!(?:00[:-]){5}00)((?:[0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2})$
|
|
- id: projectname
|
|
type: TextInput
|
|
properties:
|
|
title: Project name
|
|
- id: hostname
|
|
required: true
|
|
type: TextInput
|
|
properties:
|
|
title: Hostname
|
|
label:
|
|
extra: Can only contain alphanumeric characters and hyphens; must be between 1 and 15 characters long
|
|
extraStyle:
|
|
font-size: smaller
|
|
font-style: italic
|
|
validate:
|
|
- status: error
|
|
message: Enter a valid hostname
|
|
pass:
|
|
_regex: ^([a-zA-Z0-9]{1,15}|[a-zA-Z0-9][a-zA-Z0-9\-]{0,13}[a-zA-Z0-9])$
|
|
- id: ipaddress
|
|
required: true
|
|
type: TextInput
|
|
properties:
|
|
title: IP address
|
|
placeholder: 0.0.0.0
|
|
validate:
|
|
- status: error
|
|
message: Enter a valid IP address
|
|
pass:
|
|
_regex: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
|
|
- id: subnetmask
|
|
required: true
|
|
type: TextInput
|
|
properties:
|
|
title: Subnet mask
|
|
placeholder: 255.255.255.0
|
|
validate:
|
|
- status: error
|
|
message: Enter a valid subnet mask
|
|
pass:
|
|
_regex: ^(?:(255|254|252|248|240|224|192|128|0+)(?:\.(?!$)|$)){4}$
|
|
- id: gateway
|
|
required: true
|
|
type: TextInput
|
|
properties:
|
|
title: Gateway
|
|
placeholder: 0.0.0.0
|
|
validate:
|
|
- status: error
|
|
message: Enter a valid IP address
|
|
pass:
|
|
_regex: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
|
|
- id: dnsserver
|
|
required: true
|
|
type: TextInput
|
|
properties:
|
|
title: DNS server
|
|
placeholder: 1.1.1.1, 1.0.0.1
|
|
label:
|
|
extra: (comma-separated list of IP addresses)
|
|
extraStyle:
|
|
font-size: smaller
|
|
font-style: italic
|
|
validate:
|
|
- status: error
|
|
message: Enter one or more valid IP addresses, separated by a comma
|
|
pass:
|
|
_regex: ^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?))(?:,\s*(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)))*$
|
|
- id: dnssuffix
|
|
required: true
|
|
type: TextInput
|
|
properties:
|
|
title: DNS suffix
|
|
placeholder: example.org
|
|
validate:
|
|
- status: error
|
|
message: Enter a valid domain name
|
|
pass:
|
|
_regex: (?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\.)+[a-zA-Z]{2,63}$)
|
|
- id: rightcolumn
|
|
type: Box
|
|
layout:
|
|
span: 12
|
|
contentGutter: 10
|
|
blocks:
|
|
- id: certificate
|
|
required: true
|
|
type: TextArea
|
|
properties:
|
|
autoSize:
|
|
maxRows: 4
|
|
minRows: 4
|
|
block: true
|
|
title: Certificate
|
|
placeholder: |
|
|
-----BEGIN CERTIFICATE-----
|
|
[...]
|
|
-----END CERTIFICATE-----
|
|
label:
|
|
extra: PEM format
|
|
extraStyle:
|
|
font-size: smaller
|
|
font-style: italic
|
|
- id: privatekey
|
|
required: true
|
|
type: TextArea
|
|
properties:
|
|
autoSize:
|
|
maxRows: 4
|
|
minRows: 4
|
|
block: true
|
|
title: Private key
|
|
placeholder: |
|
|
-----BEGIN RSA PRIVATE KEY-----
|
|
[...]
|
|
-----END RSA PRIVATE KEY-----
|
|
label:
|
|
extra: PEM format
|
|
extraStyle:
|
|
font-size: smaller
|
|
font-style: italic
|
|
- id: warning
|
|
type: Alert
|
|
properties:
|
|
message: After pressing 'Start Deployment' the physical device can be booted over LAN
|
|
type: warning
|
|
- id: reset_button
|
|
type: Button
|
|
layout:
|
|
grow: 1
|
|
properties:
|
|
title: Reset
|
|
icon: ClearOutlined
|
|
block: true
|
|
type: default
|
|
events:
|
|
onClick:
|
|
- id: reset
|
|
type: Reset
|
|
- id: start_deployment
|
|
type: Button
|
|
layout:
|
|
grow: 3
|
|
properties:
|
|
title: Start Deployment
|
|
icon: RocketOutlined
|
|
block: true
|
|
# requests:
|
|
# - id: update_brand
|
|
# type: MongoDBUpdateOne # MongoDb updateOne request to update the brand.
|
|
# connectionId: brands
|
|
# properties:
|
|
# filter:
|
|
# _id:
|
|
# _state: _id # Select the document that matches the document's _id that is in state.
|
|
# update:
|
|
# $set:
|
|
# name:
|
|
# _state: name # Insert the brand name we set in state.
|
|
# description:
|
|
# _state: description # Insert the description name we set in state.
|
|
# updated_at:
|
|
# _date: now # Set the updated_at date as current time.
|
|
events:
|
|
onClick:
|
|
- id: validate
|
|
type: Validate
|
|
- id: update_brand # Call the update_brand request.
|
|
type: Request
|
|
params: update_brand
|