feat(settings): add subscription format controls

This commit is contained in:
Tomilla
2026-07-06 10:02:04 +08:00
parent 5a7b3b7370
commit 8bb9a8c6d5
32 changed files with 926 additions and 23 deletions
+97
View File
@@ -195,6 +195,10 @@
"description": "SSL certificate file for subscription server",
"type": "string"
},
"subClashAutoDetect": {
"description": "Opt in to serving Clash YAML from the standard subscription URL for recognized Clash/Mihomo/Stash User-Agents; browsers and other clients keep existing responses",
"type": "boolean"
},
"subClashEnable": {
"description": "Enable Clash/Mihomo subscription endpoint",
"type": "boolean"
@@ -215,6 +219,10 @@
"description": "Clash/Mihomo subscription server URI",
"type": "string"
},
"subClashUserAgentRegex": {
"description": "Go RE2 regular expression used to recognize Clash/Mihomo clients on the standard subscription URL",
"type": "string"
},
"subDomain": {
"description": "Domain for subscription server validation",
"type": "string"
@@ -243,6 +251,14 @@
"description": "Incy routing deep-link injected into the subscription body (Only for Incy)",
"type": "string"
},
"subJsonAlwaysArray": {
"description": "Always return JSON subscriptions as an array, including single-profile responses",
"type": "boolean"
},
"subJsonAutoDetect": {
"description": "Opt in to serving Xray JSON from the standard subscription URL for recognized compatible User-Agents",
"type": "boolean"
},
"subJsonEnable": {
"description": "Enable JSON subscription endpoint",
"type": "boolean"
@@ -266,6 +282,10 @@
"description": "JSON subscription server URI",
"type": "string"
},
"subJsonUserAgentRegex": {
"description": "Go RE2 regular expression used to recognize Xray JSON subscription clients",
"type": "string"
},
"subKeyFile": {
"description": "SSL private key file for subscription server",
"type": "string"
@@ -459,11 +479,13 @@
"smtpUsername",
"subAnnounce",
"subCertFile",
"subClashAutoDetect",
"subClashEnable",
"subClashEnableRouting",
"subClashPath",
"subClashRules",
"subClashURI",
"subClashUserAgentRegex",
"subDomain",
"subEnable",
"subEnableRouting",
@@ -471,12 +493,15 @@
"subHideSettings",
"subIncyEnableRouting",
"subIncyRoutingRules",
"subJsonAlwaysArray",
"subJsonAutoDetect",
"subJsonEnable",
"subJsonFinalMask",
"subJsonMux",
"subJsonPath",
"subJsonRules",
"subJsonURI",
"subJsonUserAgentRegex",
"subKeyFile",
"subListen",
"subPath",
@@ -704,6 +729,10 @@
"description": "SSL certificate file for subscription server",
"type": "string"
},
"subClashAutoDetect": {
"description": "Opt in to serving Clash YAML from the standard subscription URL for recognized Clash/Mihomo/Stash User-Agents; browsers and other clients keep existing responses",
"type": "boolean"
},
"subClashEnable": {
"description": "Enable Clash/Mihomo subscription endpoint",
"type": "boolean"
@@ -724,6 +753,10 @@
"description": "Clash/Mihomo subscription server URI",
"type": "string"
},
"subClashUserAgentRegex": {
"description": "Go RE2 regular expression used to recognize Clash/Mihomo clients on the standard subscription URL",
"type": "string"
},
"subDomain": {
"description": "Domain for subscription server validation",
"type": "string"
@@ -752,6 +785,14 @@
"description": "Incy routing deep-link injected into the subscription body (Only for Incy)",
"type": "string"
},
"subJsonAlwaysArray": {
"description": "Always return JSON subscriptions as an array, including single-profile responses",
"type": "boolean"
},
"subJsonAutoDetect": {
"description": "Opt in to serving Xray JSON from the standard subscription URL for recognized compatible User-Agents",
"type": "boolean"
},
"subJsonEnable": {
"description": "Enable JSON subscription endpoint",
"type": "boolean"
@@ -775,6 +816,10 @@
"description": "JSON subscription server URI",
"type": "string"
},
"subJsonUserAgentRegex": {
"description": "Go RE2 regular expression used to recognize Xray JSON subscription clients",
"type": "string"
},
"subKeyFile": {
"description": "SSL private key file for subscription server",
"type": "string"
@@ -975,11 +1020,13 @@
"smtpUsername",
"subAnnounce",
"subCertFile",
"subClashAutoDetect",
"subClashEnable",
"subClashEnableRouting",
"subClashPath",
"subClashRules",
"subClashURI",
"subClashUserAgentRegex",
"subDomain",
"subEnable",
"subEnableRouting",
@@ -987,12 +1034,15 @@
"subHideSettings",
"subIncyEnableRouting",
"subIncyRoutingRules",
"subJsonAlwaysArray",
"subJsonAutoDetect",
"subJsonEnable",
"subJsonFinalMask",
"subJsonMux",
"subJsonPath",
"subJsonRules",
"subJsonURI",
"subJsonUserAgentRegex",
"subKeyFile",
"subListen",
"subPath",
@@ -9044,6 +9094,53 @@
}
}
},
"/panel/api/setting/validateRegex": {
"post": {
"tags": [
"Settings"
],
"summary": "Validate any regular expression with the backend Go RE2 compiler without saving it.",
"operationId": "post_panel_api_setting_validateRegex",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object"
},
"example": {
"regex": "(?m)^general-purpose$"
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"msg": {
"type": "string"
},
"obj": {}
}
},
"example": {
"success": true,
"msg": ""
}
}
}
}
}
}
},
"/panel/api/setting/updateUser": {
"post": {
"tags": [