Refactor Settings DB and Handling (#1786)

* Refactor config API

* Corrections

* Test Qt 6.8

* Revert "Test Qt 6.8"

This reverts commit eceebec49e.

* Corrections 2

* Update Changelog

* Add configFilter element for getconfig call

* Do not create errors for DB updates when in read-only mode

* Have configuration migration and validation before Hyperion starts

* Correct Tests

* Corrections

* Add migration items

* Correct windows build

* Ensure that first instance as default one exists

* Remove dependency between AuthManager and SSDPHandler

* Correct typos

* Address CodeQL findings

* Replace CamkeSettings by Presets and provide debug scenarios
This commit is contained in:
LordGrey
2024-09-30 22:03:13 +02:00
committed by GitHub
parent aed4abc03b
commit ecceb4e7ae
88 changed files with 4407 additions and 2472 deletions

View File

@@ -1,6 +1,5 @@
{
"type": "object",
"required": true,
"properties": {
"enable": {
"type": "boolean",

View File

@@ -1,7 +1,6 @@
{
"type":"object",
"title" : "edt_conf_color_heading_title",
"required" : true,
"properties":
{
"imageToLedMappingType" :

View File

@@ -1,6 +1,5 @@
{
"type" : "object",
"required" : true,
"title" : "edt_conf_fbs_heading_title",
"properties" :
{

View File

@@ -7,6 +7,7 @@
{
"type" : "boolean",
"title" : "edt_conf_general_enable_title",
"required" : true,
"default" : true,
"propertyOrder" : 1
},

View File

@@ -1,7 +1,6 @@
{
"type": "object",
"title": "edt_conf_fw_heading_title",
"required": true,
"properties": {
"enable": {
"type": "boolean",

View File

@@ -1,7 +1,6 @@
{
"type" : "object",
"title" : "edt_conf_gen_heading_title",
"required" : true,
"properties" :
{
"name" :
@@ -44,15 +43,6 @@
},
"access" : "expert",
"propertyOrder" : 4
},
"previousVersion" :
{
"type" : "string",
"options" : {
"hidden":true
},
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties" : false

View File

@@ -1,6 +1,5 @@
{
"type": "object",
"required": true,
"title": "edt_conf_audio_heading_title",
"properties": {
"enable": {

View File

@@ -1,6 +1,5 @@
{
"type" : "object",
"required" : true,
"title" : "edt_conf_v4l2_heading_title",
"properties":
{
@@ -24,6 +23,7 @@
"device": {
"type": "string",
"title": "edt_conf_enum_custom",
"default": "none",
"options": {
"hidden": true
},

View File

@@ -1,6 +1,5 @@
{
"type" : "object",
"required" : true,
"title" : "edt_conf_instC_heading_title",
"properties": {
"systemEnable": {

View File

@@ -1,6 +1,5 @@
{
"type" : "object",
"required" : true,
"title" : "edt_conf_js_heading_title",
"properties" :
{

View File

@@ -1,6 +1,5 @@
{
"type": "array",
"required": true,
"minItems": 1,
"items": {
"type": "object",
@@ -61,4 +60,4 @@
},
"additionalProperties": false
}
}
}

View File

@@ -6,6 +6,7 @@
"level" :
{
"type" : "string",
"required" : true,
"enum" : ["silent", "warn", "verbose", "debug"],
"title" : "edt_conf_log_level_title",
"options" : {

View File

@@ -1,7 +1,6 @@
{
"type" : "object",
"title" : "edt_conf_net_heading_title",
"required" : true,
"properties" :
{
"internetAccessAPI" :

View File

@@ -1,6 +1,5 @@
{
"type" : "object",
"required" : true,
"title" : "edt_conf_os_events_heading_title",
"properties": {
"suspendEnable": {

View File

@@ -1,6 +1,5 @@
{
"type" : "object",
"required" : true,
"title" : "edt_conf_pbs_heading_title",
"properties" :
{

View File

@@ -1,6 +1,5 @@
{
"type": "object",
"required": true,
"properties": {
"enable": {
"type": "boolean",

View File

@@ -0,0 +1,17 @@
{
"type":"object",
"required":true,
"properties":{
"global":{
"type":"object",
"required":true,
"$ref":"schema-settings-global.json"
},
"instance":{
"type":"object",
"required":true,
"$ref":"schema-settings-instance.json"
}
},
"additionalProperties":false
}

View File

@@ -0,0 +1,59 @@
{
"type":"object",
"required":true,
"properties":{
"global":{
"type":"object",
"required":false,
"properties":{
"settings":{
"type":"object",
"required":true,
"$ref":"schema-settings-global-relaxed.json"
},
"uuid":{
"type":"string",
"format":"uuid",
"required":false
}
},
"additionalProperties":false
},
"instanceIds":{
"type":"array",
"required":false,
"items":{
"type":"integer"
},
"minItems":1
},
"instances":{
"type":"array",
"required":false,
"items":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"id":{
"type":"integer",
"minimum":0,
"maximum":255
},
"name":{
"type":"string",
"minLength":5
},
"settings":{
"type":"object",
"required":true,
"$ref":"schema-settings-instance-relaxed.json"
}
}
}
},
"additionalProperties":true
},
"additionalProperties":false
}

View File

@@ -0,0 +1,59 @@
{
"type":"object",
"required":true,
"properties":{
"global":{
"type":"object",
"required":true,
"properties":{
"settings":{
"type":"object",
"required":true,
"$ref":"schema-settings-global.json"
},
"uuid":{
"type":"string",
"format":"uuid",
"required":false
}
},
"additionalProperties":true
},
"instanceIds":{
"type":"array",
"required":false,
"items":{
"type":"integer"
},
"minItems":1
},
"instances":{
"type":"array",
"required":true,
"items":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"id":{
"type":"integer",
"minimum":0,
"maximum":255
},
"name":{
"type":"string",
"minLength":5
},
"settings":{
"type":"object",
"required":true,
"$ref":"schema-settings-instance.json"
}
}
}
},
"additionalProperties":true
},
"additionalProperties":false
}

View File

@@ -0,0 +1,62 @@
{
"type":"object",
"properties":{
"cecEvents":{
"required":false,
"$ref":"schema-cecEvents.json"
},
"flatbufServer":{
"required":false,
"$ref":"schema-flatbufServer.json"
},
"forwarder":{
"required":false,
"$ref":"schema-forwarder.json"
},
"framegrabber":{
"required":false,
"$ref":"schema-framegrabber.json"
},
"general":{
"required":false,
"$ref":"schema-general.json"
},
"grabberAudio":{
"required":false,
"$ref":"schema-grabberAudio.json"
},
"grabberV4L2":{
"required":false,
"$ref":"schema-grabberV4L2.json"
},
"jsonServer":{
"required":false,
"$ref":"schema-jsonServer.json"
},
"logger":{
"required":false,
"$ref":"schema-logger.json"
},
"network":{
"required":false,
"$ref":"schema-network.json"
},
"osEvents":{
"required":false,
"$ref":"schema-osEvents.json"
},
"protoServer":{
"required":false,
"$ref":"schema-protoServer.json"
},
"schedEvents":{
"required":false,
"$ref":"schema-schedEvents.json"
},
"webConfig":{
"required":false,
"$ref":"schema-webConfig.json"
}
},
"additionalProperties":false
}

View File

@@ -0,0 +1,62 @@
{
"type":"object",
"properties":{
"cecEvents":{
"required":true,
"$ref":"schema-cecEvents.json"
},
"flatbufServer":{
"required":true,
"$ref":"schema-flatbufServer.json"
},
"forwarder":{
"required":true,
"$ref":"schema-forwarder.json"
},
"framegrabber":{
"required":true,
"$ref":"schema-framegrabber.json"
},
"general":{
"required":true,
"$ref":"schema-general.json"
},
"grabberAudio":{
"required":true,
"$ref":"schema-grabberAudio.json"
},
"grabberV4L2":{
"required":true,
"$ref":"schema-grabberV4L2.json"
},
"jsonServer":{
"required":true,
"$ref":"schema-jsonServer.json"
},
"logger":{
"required":true,
"$ref":"schema-logger.json"
},
"network":{
"required":true,
"$ref":"schema-network.json"
},
"osEvents":{
"required":true,
"$ref":"schema-osEvents.json"
},
"protoServer":{
"required":true,
"$ref":"schema-protoServer.json"
},
"schedEvents":{
"required":true,
"$ref":"schema-schedEvents.json"
},
"webConfig":{
"required":true,
"$ref":"schema-webConfig.json"
}
},
"additionalProperties":true
}

View File

@@ -0,0 +1,50 @@
{
"type":"object",
"properties":{
"backgroundEffect":{
"required":false,
"$ref":"schema-backgroundEffect.json"
},
"blackborderdetector":{
"required":false,
"$ref":"schema-blackborderdetector.json"
},
"boblightServer":{
"required":false,
"$ref":"schema-boblightServer.json"
},
"color":{
"required":false,
"$ref":"schema-color.json"
},
"device":{
"required":false,
"$ref":"schema-device.json"
},
"effects":{
"required":false,
"$ref":"schema-effects.json"
},
"foregroundEffect":{
"required":false,
"$ref":"schema-foregroundEffect.json"
},
"instCapture":{
"required":false,
"$ref":"schema-instCapture.json"
},
"ledConfig":{
"required":false,
"$ref":"schema-ledConfig.json"
},
"leds":{
"required":false,
"$ref":"schema-leds.json"
},
"smoothing":{
"required":false,
"$ref":"schema-smoothing.json"
}
},
"additionalProperties":false
}

View File

@@ -0,0 +1,50 @@
{
"type":"object",
"properties":{
"backgroundEffect":{
"required":true,
"$ref":"schema-backgroundEffect.json"
},
"blackborderdetector":{
"required":true,
"$ref":"schema-blackborderdetector.json"
},
"boblightServer":{
"required":true,
"$ref":"schema-boblightServer.json"
},
"color":{
"required":true,
"$ref":"schema-color.json"
},
"device":{
"required":true,
"$ref":"schema-device.json"
},
"effects":{
"required":true,
"$ref":"schema-effects.json"
},
"foregroundEffect":{
"required":true,
"$ref":"schema-foregroundEffect.json"
},
"instCapture":{
"required":true,
"$ref":"schema-instCapture.json"
},
"ledConfig":{
"required":true,
"$ref":"schema-ledConfig.json"
},
"leds":{
"required":true,
"$ref":"schema-leds.json"
},
"smoothing":{
"required":true,
"$ref":"schema-smoothing.json"
}
},
"additionalProperties":true
}

View File

@@ -0,0 +1,107 @@
{
"type":"object",
"required":true,
"properties":{
"cecEvents":{
"required":true,
"$ref":"schema-cecEvents.json"
},
"flatbufServer":{
"required":true,
"$ref":"schema-flatbufServer.json"
},
"forwarder":{
"required":true,
"$ref":"schema-forwarder.json"
},
"framegrabber":{
"required":true,
"$ref":"schema-framegrabber.json"
},
"general":{
"required":true,
"$ref":"schema-general.json"
},
"grabberAudio":{
"required":true,
"$ref":"schema-grabberAudio.json"
},
"grabberV4L2":{
"required":true,
"$ref":"schema-grabberV4L2.json"
},
"jsonServer":{
"required":true,
"$ref":"schema-jsonServer.json"
},
"logger":{
"required":true,
"$ref":"schema-logger.json"
},
"network":{
"required":true,
"$ref":"schema-network.json"
},
"osEvents":{
"required":true,
"$ref":"schema-osEvents.json"
},
"protoServer":{
"required":true,
"$ref":"schema-protoServer.json"
},
"schedEvents":{
"required":true,
"$ref":"schema-schedEvents.json"
},
"webConfig":{
"required":true,
"$ref":"schema-webConfig.json"
},
"backgroundEffect":{
"required":true,
"$ref":"schema-backgroundEffect.json"
},
"blackborderdetector":{
"required":true,
"$ref":"schema-blackborderdetector.json"
},
"boblightServer":{
"required":true,
"$ref":"schema-boblightServer.json"
},
"color":{
"required":true,
"$ref":"schema-color.json"
},
"device":{
"required":true,
"$ref":"schema-device.json"
},
"effects":{
"required":true,
"$ref":"schema-effects.json"
},
"foregroundEffect":{
"required":true,
"$ref":"schema-foregroundEffect.json"
},
"instCapture":{
"required":true,
"$ref":"schema-instCapture.json"
},
"ledConfig":{
"required":true,
"$ref":"schema-ledConfig.json"
},
"leds":{
"required":true,
"$ref":"schema-leds.json"
},
"smoothing":{
"required":true,
"$ref":"schema-smoothing.json"
}
},
"additionalProperties":false
}