diff --git a/database/model/model.go b/database/model/model.go index 56a76b6e..b3764e5e 100644 --- a/database/model/model.go +++ b/database/model/model.go @@ -128,15 +128,16 @@ type Setting struct { // endpoint over HTTP using the per-node ApiToken to populate the runtime // status fields below. type Node struct { - Id int `json:"id" form:"id" gorm:"primaryKey;autoIncrement"` - Name string `json:"name" form:"name" gorm:"uniqueIndex"` - Remark string `json:"remark" form:"remark"` - Scheme string `json:"scheme" form:"scheme"` - Address string `json:"address" form:"address"` - Port int `json:"port" form:"port"` - BasePath string `json:"basePath" form:"basePath"` - ApiToken string `json:"apiToken" form:"apiToken"` - Enable bool `json:"enable" form:"enable" gorm:"default:true"` + Id int `json:"id" form:"id" gorm:"primaryKey;autoIncrement"` + Name string `json:"name" form:"name" gorm:"uniqueIndex"` + Remark string `json:"remark" form:"remark"` + Scheme string `json:"scheme" form:"scheme"` + Address string `json:"address" form:"address"` + Port int `json:"port" form:"port"` + BasePath string `json:"basePath" form:"basePath"` + ApiToken string `json:"apiToken" form:"apiToken"` + Enable bool `json:"enable" form:"enable" gorm:"default:true"` + AllowPrivateAddress bool `json:"allowPrivateAddress" form:"allowPrivateAddress" gorm:"default:false"` // Heartbeat-updated fields. UpdatedAt advances on every probe even when // the row is otherwise unchanged so the UI's "last seen" tooltip is diff --git a/frontend/src/pages/nodes/NodeFormModal.vue b/frontend/src/pages/nodes/NodeFormModal.vue index 2a585e19..720f4e8b 100644 --- a/frontend/src/pages/nodes/NodeFormModal.vue +++ b/frontend/src/pages/nodes/NodeFormModal.vue @@ -28,6 +28,7 @@ function defaultForm() { basePath: '/', apiToken: '', enable: true, + allowPrivateAddress: false, }; } @@ -69,6 +70,7 @@ function buildPayload() { basePath: form.basePath?.trim() || '/', apiToken: form.apiToken?.trim() || '', enable: !!form.enable, + allowPrivateAddress: !!form.allowPrivateAddress, }; } @@ -161,6 +163,11 @@ async function onSave() { + + +
Enable only for nodes on a private network or VPN.
+
+
{{ t('pages.nodes.apiTokenHint') }}