schemas.ts 66 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088
  1. // Code generated by tools/openapigen. DO NOT EDIT.
  2. export const SCHEMAS: Record<string, unknown> = {
  3. "AllSetting": {
  4. "properties": {
  5. "datepicker": {
  6. "type": "string"
  7. },
  8. "expireDiff": {
  9. "minimum": 0,
  10. "type": "integer"
  11. },
  12. "externalTrafficInformEnable": {
  13. "type": "boolean"
  14. },
  15. "externalTrafficInformURI": {
  16. "type": "string"
  17. },
  18. "ipLimitAllowlist": {
  19. "type": "string"
  20. },
  21. "ldapAutoCreate": {
  22. "type": "boolean"
  23. },
  24. "ldapAutoDelete": {
  25. "type": "boolean"
  26. },
  27. "ldapBaseDN": {
  28. "type": "string"
  29. },
  30. "ldapBindDN": {
  31. "type": "string"
  32. },
  33. "ldapDefaultExpiryDays": {
  34. "minimum": 0,
  35. "type": "integer"
  36. },
  37. "ldapDefaultLimitIP": {
  38. "minimum": 0,
  39. "type": "integer"
  40. },
  41. "ldapDefaultTotalGB": {
  42. "minimum": 0,
  43. "type": "integer"
  44. },
  45. "ldapEnable": {
  46. "type": "boolean"
  47. },
  48. "ldapFlagField": {
  49. "type": "string"
  50. },
  51. "ldapHost": {
  52. "type": "string"
  53. },
  54. "ldapInboundTags": {
  55. "type": "string"
  56. },
  57. "ldapInsecureSkipVerify": {
  58. "type": "boolean"
  59. },
  60. "ldapInvertFlag": {
  61. "type": "boolean"
  62. },
  63. "ldapPassword": {
  64. "type": "string"
  65. },
  66. "ldapPort": {
  67. "maximum": 65535,
  68. "minimum": 0,
  69. "type": "integer"
  70. },
  71. "ldapSyncCron": {
  72. "type": "string"
  73. },
  74. "ldapTruthyValues": {
  75. "type": "string"
  76. },
  77. "ldapUseTLS": {
  78. "type": "boolean"
  79. },
  80. "ldapUserAttr": {
  81. "type": "string"
  82. },
  83. "ldapUserFilter": {
  84. "type": "string"
  85. },
  86. "ldapVlessField": {
  87. "type": "string"
  88. },
  89. "outboundDownThreshold": {
  90. "maximum": 100,
  91. "minimum": 1,
  92. "type": "integer"
  93. },
  94. "pageSize": {
  95. "maximum": 1000,
  96. "minimum": 0,
  97. "type": "integer"
  98. },
  99. "panelOutbound": {
  100. "type": "string"
  101. },
  102. "remarkTemplate": {
  103. "type": "string"
  104. },
  105. "restartXrayOnClientDisable": {
  106. "type": "boolean"
  107. },
  108. "sessionMaxAge": {
  109. "maximum": 525600,
  110. "minimum": 1,
  111. "type": "integer"
  112. },
  113. "smtpCpu": {
  114. "maximum": 100,
  115. "minimum": 0,
  116. "type": "integer"
  117. },
  118. "smtpEnable": {
  119. "type": "boolean"
  120. },
  121. "smtpEnabledEvents": {
  122. "type": "string"
  123. },
  124. "smtpEncryptionType": {
  125. "type": "string"
  126. },
  127. "smtpFrom": {
  128. "type": "string"
  129. },
  130. "smtpFromName": {
  131. "type": "string"
  132. },
  133. "smtpHost": {
  134. "type": "string"
  135. },
  136. "smtpMemory": {
  137. "maximum": 100,
  138. "minimum": 0,
  139. "type": "integer"
  140. },
  141. "smtpPassword": {
  142. "type": "string"
  143. },
  144. "smtpPort": {
  145. "maximum": 65535,
  146. "minimum": 1,
  147. "type": "integer"
  148. },
  149. "smtpTo": {
  150. "type": "string"
  151. },
  152. "smtpUsername": {
  153. "type": "string"
  154. },
  155. "subAnnounce": {
  156. "type": "string"
  157. },
  158. "subCertFile": {
  159. "type": "string"
  160. },
  161. "subClashAutoDetect": {
  162. "type": "boolean"
  163. },
  164. "subClashEnable": {
  165. "type": "boolean"
  166. },
  167. "subClashEnableRouting": {
  168. "type": "boolean"
  169. },
  170. "subClashPath": {
  171. "type": "string"
  172. },
  173. "subClashRules": {
  174. "type": "string"
  175. },
  176. "subClashURI": {
  177. "type": "string"
  178. },
  179. "subClashUserAgentRegex": {
  180. "type": "string"
  181. },
  182. "subDomain": {
  183. "type": "string"
  184. },
  185. "subEnable": {
  186. "type": "boolean"
  187. },
  188. "subEnableRouting": {
  189. "type": "boolean"
  190. },
  191. "subEncrypt": {
  192. "type": "boolean"
  193. },
  194. "subHideSettings": {
  195. "type": "boolean"
  196. },
  197. "subIncyEnableRouting": {
  198. "type": "boolean"
  199. },
  200. "subIncyRoutingRules": {
  201. "type": "string"
  202. },
  203. "subJsonAlwaysArray": {
  204. "type": "boolean"
  205. },
  206. "subJsonAutoDetect": {
  207. "type": "boolean"
  208. },
  209. "subJsonEnable": {
  210. "type": "boolean"
  211. },
  212. "subJsonFinalMask": {
  213. "type": "string"
  214. },
  215. "subJsonMux": {
  216. "type": "string"
  217. },
  218. "subJsonPath": {
  219. "type": "string"
  220. },
  221. "subJsonRules": {
  222. "type": "string"
  223. },
  224. "subJsonURI": {
  225. "type": "string"
  226. },
  227. "subJsonUserAgentRegex": {
  228. "type": "string"
  229. },
  230. "subKeyFile": {
  231. "type": "string"
  232. },
  233. "subListen": {
  234. "type": "string"
  235. },
  236. "subPath": {
  237. "type": "string"
  238. },
  239. "subPort": {
  240. "maximum": 65535,
  241. "minimum": 1,
  242. "type": "integer"
  243. },
  244. "subProfileUrl": {
  245. "type": "string"
  246. },
  247. "subRoutingRules": {
  248. "type": "string"
  249. },
  250. "subShowIdentityOnAllLinks": {
  251. "type": "boolean"
  252. },
  253. "subSupportUrl": {
  254. "type": "string"
  255. },
  256. "subThemeDir": {
  257. "type": "string"
  258. },
  259. "subTitle": {
  260. "type": "string"
  261. },
  262. "subURI": {
  263. "type": "string"
  264. },
  265. "subUpdates": {
  266. "maximum": 525600,
  267. "minimum": 0,
  268. "type": "integer"
  269. },
  270. "tgBotAPIServer": {
  271. "type": "string"
  272. },
  273. "tgBotBackup": {
  274. "type": "boolean"
  275. },
  276. "tgBotChatId": {
  277. "type": "string"
  278. },
  279. "tgBotEnable": {
  280. "type": "boolean"
  281. },
  282. "tgBotProxy": {
  283. "type": "string"
  284. },
  285. "tgBotToken": {
  286. "type": "string"
  287. },
  288. "tgCpu": {
  289. "maximum": 100,
  290. "minimum": 0,
  291. "type": "integer"
  292. },
  293. "tgEnabledEvents": {
  294. "type": "string"
  295. },
  296. "tgLang": {
  297. "type": "string"
  298. },
  299. "tgMemory": {
  300. "maximum": 100,
  301. "minimum": 0,
  302. "type": "integer"
  303. },
  304. "tgRunTime": {
  305. "type": "string"
  306. },
  307. "timeLocation": {
  308. "type": "string"
  309. },
  310. "trafficDiff": {
  311. "maximum": 100,
  312. "minimum": 0,
  313. "type": "integer"
  314. },
  315. "trustedProxyCIDRs": {
  316. "type": "string"
  317. },
  318. "twoFactorEnable": {
  319. "type": "boolean"
  320. },
  321. "twoFactorToken": {
  322. "type": "string"
  323. },
  324. "warpUpdateInterval": {
  325. "minimum": 0,
  326. "type": "integer"
  327. },
  328. "webBasePath": {
  329. "type": "string"
  330. },
  331. "webCertFile": {
  332. "type": "string"
  333. },
  334. "webDomain": {
  335. "type": "string"
  336. },
  337. "webKeyFile": {
  338. "type": "string"
  339. },
  340. "webListen": {
  341. "type": "string"
  342. },
  343. "webPort": {
  344. "maximum": 65535,
  345. "minimum": 1,
  346. "type": "integer"
  347. }
  348. },
  349. "required": [
  350. "datepicker",
  351. "expireDiff",
  352. "externalTrafficInformEnable",
  353. "externalTrafficInformURI",
  354. "ipLimitAllowlist",
  355. "ldapAutoCreate",
  356. "ldapAutoDelete",
  357. "ldapBaseDN",
  358. "ldapBindDN",
  359. "ldapDefaultExpiryDays",
  360. "ldapDefaultLimitIP",
  361. "ldapDefaultTotalGB",
  362. "ldapEnable",
  363. "ldapFlagField",
  364. "ldapHost",
  365. "ldapInboundTags",
  366. "ldapInsecureSkipVerify",
  367. "ldapInvertFlag",
  368. "ldapPassword",
  369. "ldapPort",
  370. "ldapSyncCron",
  371. "ldapTruthyValues",
  372. "ldapUseTLS",
  373. "ldapUserAttr",
  374. "ldapUserFilter",
  375. "ldapVlessField",
  376. "outboundDownThreshold",
  377. "pageSize",
  378. "panelOutbound",
  379. "remarkTemplate",
  380. "restartXrayOnClientDisable",
  381. "sessionMaxAge",
  382. "smtpCpu",
  383. "smtpEnable",
  384. "smtpEnabledEvents",
  385. "smtpEncryptionType",
  386. "smtpFrom",
  387. "smtpFromName",
  388. "smtpHost",
  389. "smtpMemory",
  390. "smtpPassword",
  391. "smtpPort",
  392. "smtpTo",
  393. "smtpUsername",
  394. "subAnnounce",
  395. "subCertFile",
  396. "subClashAutoDetect",
  397. "subClashEnable",
  398. "subClashEnableRouting",
  399. "subClashPath",
  400. "subClashRules",
  401. "subClashURI",
  402. "subClashUserAgentRegex",
  403. "subDomain",
  404. "subEnable",
  405. "subEnableRouting",
  406. "subEncrypt",
  407. "subHideSettings",
  408. "subIncyEnableRouting",
  409. "subIncyRoutingRules",
  410. "subJsonAlwaysArray",
  411. "subJsonAutoDetect",
  412. "subJsonEnable",
  413. "subJsonFinalMask",
  414. "subJsonMux",
  415. "subJsonPath",
  416. "subJsonRules",
  417. "subJsonURI",
  418. "subJsonUserAgentRegex",
  419. "subKeyFile",
  420. "subListen",
  421. "subPath",
  422. "subPort",
  423. "subProfileUrl",
  424. "subRoutingRules",
  425. "subShowIdentityOnAllLinks",
  426. "subSupportUrl",
  427. "subThemeDir",
  428. "subTitle",
  429. "subURI",
  430. "subUpdates",
  431. "tgBotAPIServer",
  432. "tgBotBackup",
  433. "tgBotChatId",
  434. "tgBotEnable",
  435. "tgBotProxy",
  436. "tgBotToken",
  437. "tgCpu",
  438. "tgEnabledEvents",
  439. "tgLang",
  440. "tgMemory",
  441. "tgRunTime",
  442. "timeLocation",
  443. "trafficDiff",
  444. "trustedProxyCIDRs",
  445. "twoFactorEnable",
  446. "twoFactorToken",
  447. "warpUpdateInterval",
  448. "webBasePath",
  449. "webCertFile",
  450. "webDomain",
  451. "webKeyFile",
  452. "webListen",
  453. "webPort"
  454. ],
  455. "type": "object"
  456. },
  457. "AllSettingView": {
  458. "properties": {
  459. "datepicker": {
  460. "type": "string"
  461. },
  462. "expireDiff": {
  463. "minimum": 0,
  464. "type": "integer"
  465. },
  466. "externalTrafficInformEnable": {
  467. "type": "boolean"
  468. },
  469. "externalTrafficInformURI": {
  470. "type": "string"
  471. },
  472. "hasApiToken": {
  473. "type": "boolean"
  474. },
  475. "hasLdapPassword": {
  476. "type": "boolean"
  477. },
  478. "hasNordSecret": {
  479. "type": "boolean"
  480. },
  481. "hasSmtpPassword": {
  482. "type": "boolean"
  483. },
  484. "hasTgBotToken": {
  485. "type": "boolean"
  486. },
  487. "hasTwoFactorToken": {
  488. "type": "boolean"
  489. },
  490. "hasWarpSecret": {
  491. "type": "boolean"
  492. },
  493. "ipLimitAllowlist": {
  494. "type": "string"
  495. },
  496. "ldapAutoCreate": {
  497. "type": "boolean"
  498. },
  499. "ldapAutoDelete": {
  500. "type": "boolean"
  501. },
  502. "ldapBaseDN": {
  503. "type": "string"
  504. },
  505. "ldapBindDN": {
  506. "type": "string"
  507. },
  508. "ldapDefaultExpiryDays": {
  509. "minimum": 0,
  510. "type": "integer"
  511. },
  512. "ldapDefaultLimitIP": {
  513. "minimum": 0,
  514. "type": "integer"
  515. },
  516. "ldapDefaultTotalGB": {
  517. "minimum": 0,
  518. "type": "integer"
  519. },
  520. "ldapEnable": {
  521. "type": "boolean"
  522. },
  523. "ldapFlagField": {
  524. "type": "string"
  525. },
  526. "ldapHost": {
  527. "type": "string"
  528. },
  529. "ldapInboundTags": {
  530. "type": "string"
  531. },
  532. "ldapInsecureSkipVerify": {
  533. "type": "boolean"
  534. },
  535. "ldapInvertFlag": {
  536. "type": "boolean"
  537. },
  538. "ldapPassword": {
  539. "type": "string"
  540. },
  541. "ldapPort": {
  542. "maximum": 65535,
  543. "minimum": 0,
  544. "type": "integer"
  545. },
  546. "ldapSyncCron": {
  547. "type": "string"
  548. },
  549. "ldapTruthyValues": {
  550. "type": "string"
  551. },
  552. "ldapUseTLS": {
  553. "type": "boolean"
  554. },
  555. "ldapUserAttr": {
  556. "type": "string"
  557. },
  558. "ldapUserFilter": {
  559. "type": "string"
  560. },
  561. "ldapVlessField": {
  562. "type": "string"
  563. },
  564. "outboundDownThreshold": {
  565. "maximum": 100,
  566. "minimum": 1,
  567. "type": "integer"
  568. },
  569. "pageSize": {
  570. "maximum": 1000,
  571. "minimum": 0,
  572. "type": "integer"
  573. },
  574. "panelOutbound": {
  575. "type": "string"
  576. },
  577. "remarkTemplate": {
  578. "type": "string"
  579. },
  580. "restartXrayOnClientDisable": {
  581. "type": "boolean"
  582. },
  583. "sessionMaxAge": {
  584. "maximum": 525600,
  585. "minimum": 1,
  586. "type": "integer"
  587. },
  588. "smtpCpu": {
  589. "maximum": 100,
  590. "minimum": 0,
  591. "type": "integer"
  592. },
  593. "smtpEnable": {
  594. "type": "boolean"
  595. },
  596. "smtpEnabledEvents": {
  597. "type": "string"
  598. },
  599. "smtpEncryptionType": {
  600. "type": "string"
  601. },
  602. "smtpFrom": {
  603. "type": "string"
  604. },
  605. "smtpFromName": {
  606. "type": "string"
  607. },
  608. "smtpHost": {
  609. "type": "string"
  610. },
  611. "smtpMemory": {
  612. "maximum": 100,
  613. "minimum": 0,
  614. "type": "integer"
  615. },
  616. "smtpPassword": {
  617. "type": "string"
  618. },
  619. "smtpPort": {
  620. "maximum": 65535,
  621. "minimum": 1,
  622. "type": "integer"
  623. },
  624. "smtpTo": {
  625. "type": "string"
  626. },
  627. "smtpUsername": {
  628. "type": "string"
  629. },
  630. "subAnnounce": {
  631. "type": "string"
  632. },
  633. "subCertFile": {
  634. "type": "string"
  635. },
  636. "subClashAutoDetect": {
  637. "type": "boolean"
  638. },
  639. "subClashEnable": {
  640. "type": "boolean"
  641. },
  642. "subClashEnableRouting": {
  643. "type": "boolean"
  644. },
  645. "subClashPath": {
  646. "type": "string"
  647. },
  648. "subClashRules": {
  649. "type": "string"
  650. },
  651. "subClashURI": {
  652. "type": "string"
  653. },
  654. "subClashUserAgentRegex": {
  655. "type": "string"
  656. },
  657. "subDomain": {
  658. "type": "string"
  659. },
  660. "subEnable": {
  661. "type": "boolean"
  662. },
  663. "subEnableRouting": {
  664. "type": "boolean"
  665. },
  666. "subEncrypt": {
  667. "type": "boolean"
  668. },
  669. "subHideSettings": {
  670. "type": "boolean"
  671. },
  672. "subIncyEnableRouting": {
  673. "type": "boolean"
  674. },
  675. "subIncyRoutingRules": {
  676. "type": "string"
  677. },
  678. "subJsonAlwaysArray": {
  679. "type": "boolean"
  680. },
  681. "subJsonAutoDetect": {
  682. "type": "boolean"
  683. },
  684. "subJsonEnable": {
  685. "type": "boolean"
  686. },
  687. "subJsonFinalMask": {
  688. "type": "string"
  689. },
  690. "subJsonMux": {
  691. "type": "string"
  692. },
  693. "subJsonPath": {
  694. "type": "string"
  695. },
  696. "subJsonRules": {
  697. "type": "string"
  698. },
  699. "subJsonURI": {
  700. "type": "string"
  701. },
  702. "subJsonUserAgentRegex": {
  703. "type": "string"
  704. },
  705. "subKeyFile": {
  706. "type": "string"
  707. },
  708. "subListen": {
  709. "type": "string"
  710. },
  711. "subPath": {
  712. "type": "string"
  713. },
  714. "subPort": {
  715. "maximum": 65535,
  716. "minimum": 1,
  717. "type": "integer"
  718. },
  719. "subProfileUrl": {
  720. "type": "string"
  721. },
  722. "subRoutingRules": {
  723. "type": "string"
  724. },
  725. "subShowIdentityOnAllLinks": {
  726. "type": "boolean"
  727. },
  728. "subSupportUrl": {
  729. "type": "string"
  730. },
  731. "subThemeDir": {
  732. "type": "string"
  733. },
  734. "subTitle": {
  735. "type": "string"
  736. },
  737. "subURI": {
  738. "type": "string"
  739. },
  740. "subUpdates": {
  741. "maximum": 525600,
  742. "minimum": 0,
  743. "type": "integer"
  744. },
  745. "tgBotAPIServer": {
  746. "type": "string"
  747. },
  748. "tgBotBackup": {
  749. "type": "boolean"
  750. },
  751. "tgBotChatId": {
  752. "type": "string"
  753. },
  754. "tgBotEnable": {
  755. "type": "boolean"
  756. },
  757. "tgBotProxy": {
  758. "type": "string"
  759. },
  760. "tgBotToken": {
  761. "type": "string"
  762. },
  763. "tgCpu": {
  764. "maximum": 100,
  765. "minimum": 0,
  766. "type": "integer"
  767. },
  768. "tgEnabledEvents": {
  769. "type": "string"
  770. },
  771. "tgLang": {
  772. "type": "string"
  773. },
  774. "tgMemory": {
  775. "maximum": 100,
  776. "minimum": 0,
  777. "type": "integer"
  778. },
  779. "tgRunTime": {
  780. "type": "string"
  781. },
  782. "timeLocation": {
  783. "type": "string"
  784. },
  785. "trafficDiff": {
  786. "maximum": 100,
  787. "minimum": 0,
  788. "type": "integer"
  789. },
  790. "trustedProxyCIDRs": {
  791. "type": "string"
  792. },
  793. "twoFactorEnable": {
  794. "type": "boolean"
  795. },
  796. "twoFactorToken": {
  797. "type": "string"
  798. },
  799. "warpUpdateInterval": {
  800. "minimum": 0,
  801. "type": "integer"
  802. },
  803. "webBasePath": {
  804. "type": "string"
  805. },
  806. "webCertFile": {
  807. "type": "string"
  808. },
  809. "webDomain": {
  810. "type": "string"
  811. },
  812. "webKeyFile": {
  813. "type": "string"
  814. },
  815. "webListen": {
  816. "type": "string"
  817. },
  818. "webPort": {
  819. "maximum": 65535,
  820. "minimum": 1,
  821. "type": "integer"
  822. }
  823. },
  824. "required": [
  825. "datepicker",
  826. "expireDiff",
  827. "externalTrafficInformEnable",
  828. "externalTrafficInformURI",
  829. "hasApiToken",
  830. "hasLdapPassword",
  831. "hasNordSecret",
  832. "hasSmtpPassword",
  833. "hasTgBotToken",
  834. "hasTwoFactorToken",
  835. "hasWarpSecret",
  836. "ipLimitAllowlist",
  837. "ldapAutoCreate",
  838. "ldapAutoDelete",
  839. "ldapBaseDN",
  840. "ldapBindDN",
  841. "ldapDefaultExpiryDays",
  842. "ldapDefaultLimitIP",
  843. "ldapDefaultTotalGB",
  844. "ldapEnable",
  845. "ldapFlagField",
  846. "ldapHost",
  847. "ldapInboundTags",
  848. "ldapInsecureSkipVerify",
  849. "ldapInvertFlag",
  850. "ldapPassword",
  851. "ldapPort",
  852. "ldapSyncCron",
  853. "ldapTruthyValues",
  854. "ldapUseTLS",
  855. "ldapUserAttr",
  856. "ldapUserFilter",
  857. "ldapVlessField",
  858. "outboundDownThreshold",
  859. "pageSize",
  860. "panelOutbound",
  861. "remarkTemplate",
  862. "restartXrayOnClientDisable",
  863. "sessionMaxAge",
  864. "smtpCpu",
  865. "smtpEnable",
  866. "smtpEnabledEvents",
  867. "smtpEncryptionType",
  868. "smtpFrom",
  869. "smtpFromName",
  870. "smtpHost",
  871. "smtpMemory",
  872. "smtpPassword",
  873. "smtpPort",
  874. "smtpTo",
  875. "smtpUsername",
  876. "subAnnounce",
  877. "subCertFile",
  878. "subClashAutoDetect",
  879. "subClashEnable",
  880. "subClashEnableRouting",
  881. "subClashPath",
  882. "subClashRules",
  883. "subClashURI",
  884. "subClashUserAgentRegex",
  885. "subDomain",
  886. "subEnable",
  887. "subEnableRouting",
  888. "subEncrypt",
  889. "subHideSettings",
  890. "subIncyEnableRouting",
  891. "subIncyRoutingRules",
  892. "subJsonAlwaysArray",
  893. "subJsonAutoDetect",
  894. "subJsonEnable",
  895. "subJsonFinalMask",
  896. "subJsonMux",
  897. "subJsonPath",
  898. "subJsonRules",
  899. "subJsonURI",
  900. "subJsonUserAgentRegex",
  901. "subKeyFile",
  902. "subListen",
  903. "subPath",
  904. "subPort",
  905. "subProfileUrl",
  906. "subRoutingRules",
  907. "subShowIdentityOnAllLinks",
  908. "subSupportUrl",
  909. "subThemeDir",
  910. "subTitle",
  911. "subURI",
  912. "subUpdates",
  913. "tgBotAPIServer",
  914. "tgBotBackup",
  915. "tgBotChatId",
  916. "tgBotEnable",
  917. "tgBotProxy",
  918. "tgBotToken",
  919. "tgCpu",
  920. "tgEnabledEvents",
  921. "tgLang",
  922. "tgMemory",
  923. "tgRunTime",
  924. "timeLocation",
  925. "trafficDiff",
  926. "trustedProxyCIDRs",
  927. "twoFactorEnable",
  928. "twoFactorToken",
  929. "warpUpdateInterval",
  930. "webBasePath",
  931. "webCertFile",
  932. "webDomain",
  933. "webKeyFile",
  934. "webListen",
  935. "webPort"
  936. ],
  937. "type": "object"
  938. },
  939. "ApiToken": {
  940. "properties": {
  941. "createdAt": {
  942. "format": "int64",
  943. "type": "integer"
  944. },
  945. "enabled": {
  946. "type": "boolean"
  947. },
  948. "expiresAt": {
  949. "format": "int64",
  950. "type": "integer"
  951. },
  952. "id": {
  953. "type": "integer"
  954. },
  955. "name": {
  956. "type": "string"
  957. },
  958. "scope": {
  959. "type": "string"
  960. },
  961. "token": {
  962. "description": "SHA-256 hash; the plaintext is shown only once at creation",
  963. "type": "string"
  964. }
  965. },
  966. "required": [
  967. "createdAt",
  968. "enabled",
  969. "expiresAt",
  970. "id",
  971. "name",
  972. "scope",
  973. "token"
  974. ],
  975. "type": "object"
  976. },
  977. "ApiTokenView": {
  978. "properties": {
  979. "createdAt": {
  980. "example": 1736000000,
  981. "format": "int64",
  982. "type": "integer"
  983. },
  984. "enabled": {
  985. "example": true,
  986. "type": "boolean"
  987. },
  988. "expiresAt": {
  989. "example": 0,
  990. "format": "int64",
  991. "type": "integer"
  992. },
  993. "id": {
  994. "example": 2,
  995. "type": "integer"
  996. },
  997. "name": {
  998. "example": "central-panel-a",
  999. "type": "string"
  1000. },
  1001. "scope": {
  1002. "example": "admin",
  1003. "type": "string"
  1004. },
  1005. "token": {
  1006. "example": "new-token-string",
  1007. "type": "string"
  1008. }
  1009. },
  1010. "required": [
  1011. "createdAt",
  1012. "enabled",
  1013. "expiresAt",
  1014. "id",
  1015. "name",
  1016. "scope"
  1017. ],
  1018. "type": "object"
  1019. },
  1020. "Client": {
  1021. "description": "Client represents a client configuration for Xray inbounds with traffic limits and settings.",
  1022. "properties": {
  1023. "adTag": {
  1024. "example": "0123456789abcdef0123456789abcdef",
  1025. "type": "string"
  1026. },
  1027. "allowedIPs": {
  1028. "items": {
  1029. "type": "string"
  1030. },
  1031. "type": "array"
  1032. },
  1033. "auth": {
  1034. "description": "Auth password (Hysteria)",
  1035. "type": "string"
  1036. },
  1037. "comment": {
  1038. "description": "Client comment",
  1039. "type": "string"
  1040. },
  1041. "created_at": {
  1042. "description": "Creation timestamp",
  1043. "format": "int64",
  1044. "type": "integer"
  1045. },
  1046. "email": {
  1047. "description": "Client email identifier",
  1048. "type": "string"
  1049. },
  1050. "enable": {
  1051. "description": "Whether the client is enabled",
  1052. "type": "boolean"
  1053. },
  1054. "expiryTime": {
  1055. "description": "Expiration timestamp",
  1056. "format": "int64",
  1057. "type": "integer"
  1058. },
  1059. "flow": {
  1060. "description": "Flow control (XTLS)",
  1061. "type": "string"
  1062. },
  1063. "group": {
  1064. "description": "Logical grouping label",
  1065. "type": "string"
  1066. },
  1067. "id": {
  1068. "description": "Unique client identifier",
  1069. "type": "string"
  1070. },
  1071. "keepAlive": {
  1072. "type": "integer"
  1073. },
  1074. "limitIp": {
  1075. "description": "IP limit for this client",
  1076. "type": "integer"
  1077. },
  1078. "password": {
  1079. "description": "Client password",
  1080. "type": "string"
  1081. },
  1082. "preSharedKey": {
  1083. "type": "string"
  1084. },
  1085. "privateKey": {
  1086. "type": "string"
  1087. },
  1088. "publicKey": {
  1089. "type": "string"
  1090. },
  1091. "reset": {
  1092. "description": "Reset period in days",
  1093. "type": "integer"
  1094. },
  1095. "resetDay": {
  1096. "description": "Calendar renewal day 1-31, 0 = interval mode",
  1097. "type": "integer"
  1098. },
  1099. "resetMax": {
  1100. "description": "Max auto-renew count, 0 = unlimited",
  1101. "type": "integer"
  1102. },
  1103. "reverse": {
  1104. "allOf": [
  1105. {
  1106. "$ref": "#/components/schemas/ClientReverse"
  1107. }
  1108. ],
  1109. "description": "VLESS simple reverse proxy settings",
  1110. "nullable": true
  1111. },
  1112. "secret": {
  1113. "example": "ee1234567890abcdef1234567890abcd7777772e636c6f7564666c6172652e636f6d",
  1114. "type": "string"
  1115. },
  1116. "security": {
  1117. "description": "Security method (e.g., \"auto\", \"aes-128-gcm\")",
  1118. "type": "string"
  1119. },
  1120. "subId": {
  1121. "description": "Subscription identifier",
  1122. "type": "string"
  1123. },
  1124. "tgId": {
  1125. "description": "Telegram user ID for notifications",
  1126. "format": "int64",
  1127. "type": "integer"
  1128. },
  1129. "totalGB": {
  1130. "description": "Total traffic limit in GB",
  1131. "format": "int64",
  1132. "type": "integer"
  1133. },
  1134. "trafficReset": {
  1135. "description": "Per-client traffic reset cycle, independent of the inbound's own (#5497).",
  1136. "enum": [
  1137. "never",
  1138. "hourly",
  1139. "daily",
  1140. "weekly",
  1141. "monthly"
  1142. ],
  1143. "type": "string"
  1144. },
  1145. "trafficResetDay": {
  1146. "maximum": 31,
  1147. "minimum": 1,
  1148. "type": "integer"
  1149. },
  1150. "updated_at": {
  1151. "description": "Last update timestamp",
  1152. "format": "int64",
  1153. "type": "integer"
  1154. }
  1155. },
  1156. "required": [
  1157. "comment",
  1158. "email",
  1159. "enable",
  1160. "expiryTime",
  1161. "limitIp",
  1162. "reset",
  1163. "resetDay",
  1164. "resetMax",
  1165. "security",
  1166. "subId",
  1167. "tgId",
  1168. "totalGB"
  1169. ],
  1170. "type": "object"
  1171. },
  1172. "ClientInbound": {
  1173. "properties": {
  1174. "clientId": {
  1175. "type": "integer"
  1176. },
  1177. "createdAt": {
  1178. "format": "int64",
  1179. "type": "integer"
  1180. },
  1181. "flowOverride": {
  1182. "type": "string"
  1183. },
  1184. "inboundId": {
  1185. "type": "integer"
  1186. }
  1187. },
  1188. "required": [
  1189. "clientId",
  1190. "createdAt",
  1191. "flowOverride",
  1192. "inboundId"
  1193. ],
  1194. "type": "object"
  1195. },
  1196. "ClientRecord": {
  1197. "properties": {
  1198. "adTag": {
  1199. "type": "string"
  1200. },
  1201. "allowedIPs": {
  1202. "type": "string"
  1203. },
  1204. "auth": {
  1205. "type": "string"
  1206. },
  1207. "comment": {
  1208. "type": "string"
  1209. },
  1210. "createdAt": {
  1211. "format": "int64",
  1212. "type": "integer"
  1213. },
  1214. "email": {
  1215. "type": "string"
  1216. },
  1217. "enable": {
  1218. "type": "boolean"
  1219. },
  1220. "expiryTime": {
  1221. "format": "int64",
  1222. "type": "integer"
  1223. },
  1224. "flow": {
  1225. "type": "string"
  1226. },
  1227. "group": {
  1228. "type": "string"
  1229. },
  1230. "id": {
  1231. "type": "integer"
  1232. },
  1233. "keepAlive": {
  1234. "type": "integer"
  1235. },
  1236. "limitHwid": {
  1237. "type": "integer"
  1238. },
  1239. "limitIp": {
  1240. "type": "integer"
  1241. },
  1242. "password": {
  1243. "type": "string"
  1244. },
  1245. "preSharedKey": {
  1246. "type": "string"
  1247. },
  1248. "privateKey": {
  1249. "type": "string"
  1250. },
  1251. "publicKey": {
  1252. "type": "string"
  1253. },
  1254. "reset": {
  1255. "type": "integer"
  1256. },
  1257. "resetDay": {
  1258. "type": "integer"
  1259. },
  1260. "resetMax": {
  1261. "type": "integer"
  1262. },
  1263. "reverse": {},
  1264. "secret": {
  1265. "type": "string"
  1266. },
  1267. "security": {
  1268. "type": "string"
  1269. },
  1270. "subId": {
  1271. "type": "string"
  1272. },
  1273. "tgId": {
  1274. "format": "int64",
  1275. "type": "integer"
  1276. },
  1277. "totalGB": {
  1278. "format": "int64",
  1279. "type": "integer"
  1280. },
  1281. "trafficReset": {
  1282. "type": "string"
  1283. },
  1284. "trafficResetDay": {
  1285. "type": "integer"
  1286. },
  1287. "updatedAt": {
  1288. "format": "int64",
  1289. "type": "integer"
  1290. },
  1291. "uuid": {
  1292. "type": "string"
  1293. }
  1294. },
  1295. "required": [
  1296. "adTag",
  1297. "allowedIPs",
  1298. "auth",
  1299. "comment",
  1300. "createdAt",
  1301. "email",
  1302. "enable",
  1303. "expiryTime",
  1304. "flow",
  1305. "group",
  1306. "id",
  1307. "keepAlive",
  1308. "limitHwid",
  1309. "limitIp",
  1310. "password",
  1311. "preSharedKey",
  1312. "privateKey",
  1313. "publicKey",
  1314. "reset",
  1315. "resetDay",
  1316. "resetMax",
  1317. "reverse",
  1318. "secret",
  1319. "security",
  1320. "subId",
  1321. "tgId",
  1322. "totalGB",
  1323. "trafficReset",
  1324. "trafficResetDay",
  1325. "updatedAt",
  1326. "uuid"
  1327. ],
  1328. "type": "object"
  1329. },
  1330. "ClientReverse": {
  1331. "properties": {
  1332. "tag": {
  1333. "type": "string"
  1334. }
  1335. },
  1336. "required": [
  1337. "tag"
  1338. ],
  1339. "type": "object"
  1340. },
  1341. "ClientTraffic": {
  1342. "description": "ClientTraffic represents traffic statistics and limits for a specific client.\nIt tracks upload/download usage, expiry times, and online status for inbound clients.",
  1343. "properties": {
  1344. "down": {
  1345. "example": 2097152,
  1346. "format": "int64",
  1347. "type": "integer"
  1348. },
  1349. "email": {
  1350. "example": "user1",
  1351. "type": "string"
  1352. },
  1353. "enable": {
  1354. "example": true,
  1355. "type": "boolean"
  1356. },
  1357. "expiryTime": {
  1358. "example": 1735689600000,
  1359. "format": "int64",
  1360. "type": "integer"
  1361. },
  1362. "id": {
  1363. "example": 14825,
  1364. "type": "integer"
  1365. },
  1366. "inboundId": {
  1367. "example": 1,
  1368. "type": "integer"
  1369. },
  1370. "lastOnline": {
  1371. "example": 1735680000000,
  1372. "format": "int64",
  1373. "type": "integer"
  1374. },
  1375. "lastSubFetch": {
  1376. "example": 1735680000000,
  1377. "format": "int64",
  1378. "type": "integer"
  1379. },
  1380. "reset": {
  1381. "example": 0,
  1382. "type": "integer"
  1383. },
  1384. "resetCount": {
  1385. "description": "ResetCount is how many have fired, so a prepaid plan stops on its own.",
  1386. "example": 0,
  1387. "type": "integer"
  1388. },
  1389. "resetDay": {
  1390. "description": "ResetDay renews on that day of each calendar month instead of every\nReset days; 0 keeps the interval behaviour.",
  1391. "example": 0,
  1392. "type": "integer"
  1393. },
  1394. "resetMax": {
  1395. "description": "ResetMax caps how many times auto-renew may fire; 0 means no cap.",
  1396. "example": 0,
  1397. "type": "integer"
  1398. },
  1399. "subId": {
  1400. "example": "i7tvdpeffi0hvvf1",
  1401. "type": "string"
  1402. },
  1403. "total": {
  1404. "example": 10737418240,
  1405. "format": "int64",
  1406. "type": "integer"
  1407. },
  1408. "up": {
  1409. "example": 1048576,
  1410. "format": "int64",
  1411. "type": "integer"
  1412. },
  1413. "uuid": {
  1414. "example": "e18c9a96-71bf-48d4-933f-8b9a46d4290c",
  1415. "type": "string"
  1416. }
  1417. },
  1418. "required": [
  1419. "down",
  1420. "email",
  1421. "enable",
  1422. "expiryTime",
  1423. "id",
  1424. "inboundId",
  1425. "lastOnline",
  1426. "lastSubFetch",
  1427. "reset",
  1428. "resetCount",
  1429. "resetDay",
  1430. "resetMax",
  1431. "subId",
  1432. "total",
  1433. "up",
  1434. "uuid"
  1435. ],
  1436. "type": "object"
  1437. },
  1438. "FallbackParentInfo": {
  1439. "description": "FallbackParentInfo carries everything the frontend needs to rewrite a\nchild inbound's client link: where to connect (the master's address\nand port) and which path matched on the master's fallbacks array.\nThe frontend already has the master inbound in its dbInbounds list,\nso we only ship identifiers + the match path here.",
  1440. "properties": {
  1441. "masterId": {
  1442. "type": "integer"
  1443. },
  1444. "path": {
  1445. "type": "string"
  1446. }
  1447. },
  1448. "required": [
  1449. "masterId"
  1450. ],
  1451. "type": "object"
  1452. },
  1453. "GeoCategory": {
  1454. "description": "GeoCategory is one code inside a database, such as geosite's \"google\".",
  1455. "properties": {
  1456. "attributes": {
  1457. "example": [
  1458. "ads",
  1459. "cn"
  1460. ],
  1461. "items": {
  1462. "type": "string"
  1463. },
  1464. "type": "array"
  1465. },
  1466. "code": {
  1467. "example": "google",
  1468. "type": "string"
  1469. },
  1470. "entries": {
  1471. "example": 1284,
  1472. "type": "integer"
  1473. }
  1474. },
  1475. "required": [
  1476. "attributes",
  1477. "code",
  1478. "entries"
  1479. ],
  1480. "type": "object"
  1481. },
  1482. "GeoCategoryPage": {
  1483. "description": "GeoCategoryPage is one page of categories plus the unpaged total.",
  1484. "properties": {
  1485. "items": {
  1486. "items": {
  1487. "$ref": "#/components/schemas/GeoCategory"
  1488. },
  1489. "type": "array"
  1490. },
  1491. "total": {
  1492. "example": 1043,
  1493. "type": "integer"
  1494. }
  1495. },
  1496. "required": [
  1497. "items",
  1498. "total"
  1499. ],
  1500. "type": "object"
  1501. },
  1502. "GeoEntry": {
  1503. "description": "GeoEntry is a single rule inside a category: a domain rule for geosite\ndatabases, a CIDR for geoip ones.",
  1504. "properties": {
  1505. "kind": {
  1506. "example": "domain",
  1507. "type": "string"
  1508. },
  1509. "value": {
  1510. "example": "google.com",
  1511. "type": "string"
  1512. }
  1513. },
  1514. "required": [
  1515. "kind",
  1516. "value"
  1517. ],
  1518. "type": "object"
  1519. },
  1520. "GeoEntryPage": {
  1521. "description": "GeoEntryPage is one page of category entries plus the unpaged total.",
  1522. "properties": {
  1523. "items": {
  1524. "items": {
  1525. "$ref": "#/components/schemas/GeoEntry"
  1526. },
  1527. "type": "array"
  1528. },
  1529. "total": {
  1530. "example": 1284,
  1531. "type": "integer"
  1532. }
  1533. },
  1534. "required": [
  1535. "items",
  1536. "total"
  1537. ],
  1538. "type": "object"
  1539. },
  1540. "GeoFile": {
  1541. "description": "GeoFile describes one .dat database found in the asset directory.",
  1542. "properties": {
  1543. "categories": {
  1544. "example": 1043,
  1545. "type": "integer"
  1546. },
  1547. "error": {
  1548. "type": "string"
  1549. },
  1550. "kind": {
  1551. "example": "site",
  1552. "type": "string"
  1553. },
  1554. "modifiedAt": {
  1555. "example": 1769558400000,
  1556. "format": "int64",
  1557. "type": "integer"
  1558. },
  1559. "name": {
  1560. "example": "geosite.dat",
  1561. "type": "string"
  1562. },
  1563. "size": {
  1564. "example": 1467392,
  1565. "format": "int64",
  1566. "type": "integer"
  1567. }
  1568. },
  1569. "required": [
  1570. "categories",
  1571. "kind",
  1572. "modifiedAt",
  1573. "name",
  1574. "size"
  1575. ],
  1576. "type": "object"
  1577. },
  1578. "GeodataTokenIssue": {
  1579. "description": "GeodataTokenIssue reports a routing token the running core would reject,\nor would silently match nothing against.",
  1580. "properties": {
  1581. "code": {
  1582. "example": "blabla",
  1583. "type": "string"
  1584. },
  1585. "file": {
  1586. "example": "geosite.dat",
  1587. "type": "string"
  1588. },
  1589. "reason": {
  1590. "example": "categoryMissing",
  1591. "type": "string"
  1592. },
  1593. "token": {
  1594. "example": "geosite:blabla",
  1595. "type": "string"
  1596. }
  1597. },
  1598. "required": [
  1599. "reason",
  1600. "token"
  1601. ],
  1602. "type": "object"
  1603. },
  1604. "HistoryOfSeeders": {
  1605. "description": "HistoryOfSeeders tracks which database seeders have been executed to prevent re-running.",
  1606. "properties": {
  1607. "id": {
  1608. "type": "integer"
  1609. },
  1610. "seederName": {
  1611. "type": "string"
  1612. }
  1613. },
  1614. "required": [
  1615. "id",
  1616. "seederName"
  1617. ],
  1618. "type": "object"
  1619. },
  1620. "Host": {
  1621. "properties": {
  1622. "address": {
  1623. "example": "cdn.example.com",
  1624. "type": "string"
  1625. },
  1626. "allowInsecure": {
  1627. "type": "boolean"
  1628. },
  1629. "alpn": {
  1630. "items": {
  1631. "type": "string"
  1632. },
  1633. "type": "array"
  1634. },
  1635. "createdAt": {
  1636. "format": "int64",
  1637. "type": "integer"
  1638. },
  1639. "echConfigList": {
  1640. "type": "string"
  1641. },
  1642. "excludeFromSubTypes": {
  1643. "items": {
  1644. "type": "string"
  1645. },
  1646. "type": "array"
  1647. },
  1648. "finalMask": {
  1649. "description": "FinalMask is a JSON object of xray finalmask masks (tcp/udp/quicParams),\nmerged into this host's JSON-subscription stream. Empty = no override.",
  1650. "type": "string"
  1651. },
  1652. "fingerprint": {
  1653. "type": "string"
  1654. },
  1655. "groupId": {
  1656. "type": "string"
  1657. },
  1658. "hostHeader": {
  1659. "type": "string"
  1660. },
  1661. "id": {
  1662. "example": 1,
  1663. "type": "integer"
  1664. },
  1665. "inboundId": {
  1666. "example": 1,
  1667. "type": "integer"
  1668. },
  1669. "isDisabled": {
  1670. "type": "boolean"
  1671. },
  1672. "isHidden": {
  1673. "type": "boolean"
  1674. },
  1675. "keepSniBlank": {
  1676. "type": "boolean"
  1677. },
  1678. "mihomoIpVersion": {
  1679. "enum": [
  1680. "dual",
  1681. "ipv4",
  1682. "ipv6",
  1683. "ipv4-prefer",
  1684. "ipv6-prefer"
  1685. ],
  1686. "type": "string"
  1687. },
  1688. "mihomoX25519": {
  1689. "type": "boolean"
  1690. },
  1691. "muxParams": {},
  1692. "nodeGuids": {
  1693. "items": {
  1694. "type": "string"
  1695. },
  1696. "type": "array"
  1697. },
  1698. "overrideSniFromAddress": {
  1699. "type": "boolean"
  1700. },
  1701. "path": {
  1702. "type": "string"
  1703. },
  1704. "pinnedPeerCertSha256": {
  1705. "items": {
  1706. "type": "string"
  1707. },
  1708. "type": "array"
  1709. },
  1710. "port": {
  1711. "example": 8443,
  1712. "maximum": 65535,
  1713. "minimum": 0,
  1714. "type": "integer"
  1715. },
  1716. "remark": {
  1717. "example": "cdn-front",
  1718. "maxLength": 256,
  1719. "type": "string"
  1720. },
  1721. "security": {
  1722. "enum": [
  1723. "same",
  1724. "tls",
  1725. "none",
  1726. "reality"
  1727. ],
  1728. "example": "same",
  1729. "type": "string"
  1730. },
  1731. "serverDescription": {
  1732. "maxLength": 64,
  1733. "type": "string"
  1734. },
  1735. "shuffleHost": {
  1736. "type": "boolean"
  1737. },
  1738. "sni": {
  1739. "type": "string"
  1740. },
  1741. "sockoptParams": {},
  1742. "sortOrder": {
  1743. "type": "integer"
  1744. },
  1745. "tags": {
  1746. "items": {
  1747. "type": "string"
  1748. },
  1749. "type": "array"
  1750. },
  1751. "updatedAt": {
  1752. "format": "int64",
  1753. "type": "integer"
  1754. },
  1755. "verifyPeerCertByName": {
  1756. "type": "string"
  1757. },
  1758. "vlessRoute": {
  1759. "description": "Single VLESS route value (0-65535) baked into the subscription UUID's 3rd\ngroup (bytes 6-7), which xray reads via net.PortFromBytes(id[6:8]). Empty = none.",
  1760. "example": "443",
  1761. "type": "string"
  1762. }
  1763. },
  1764. "required": [
  1765. "address",
  1766. "allowInsecure",
  1767. "alpn",
  1768. "createdAt",
  1769. "echConfigList",
  1770. "excludeFromSubTypes",
  1771. "finalMask",
  1772. "fingerprint",
  1773. "groupId",
  1774. "hostHeader",
  1775. "id",
  1776. "inboundId",
  1777. "isDisabled",
  1778. "isHidden",
  1779. "keepSniBlank",
  1780. "mihomoIpVersion",
  1781. "mihomoX25519",
  1782. "muxParams",
  1783. "overrideSniFromAddress",
  1784. "path",
  1785. "pinnedPeerCertSha256",
  1786. "port",
  1787. "remark",
  1788. "security",
  1789. "serverDescription",
  1790. "shuffleHost",
  1791. "sni",
  1792. "sockoptParams",
  1793. "sortOrder",
  1794. "tags",
  1795. "updatedAt",
  1796. "verifyPeerCertByName",
  1797. "vlessRoute"
  1798. ],
  1799. "type": "object"
  1800. },
  1801. "HostGroup": {
  1802. "properties": {
  1803. "allowInsecure": {
  1804. "type": "boolean"
  1805. },
  1806. "alpn": {
  1807. "items": {
  1808. "type": "string"
  1809. },
  1810. "type": "array"
  1811. },
  1812. "echConfigList": {
  1813. "type": "string"
  1814. },
  1815. "excludeFromSubTypes": {
  1816. "items": {
  1817. "type": "string"
  1818. },
  1819. "type": "array"
  1820. },
  1821. "finalMask": {
  1822. "type": "string"
  1823. },
  1824. "fingerprint": {
  1825. "type": "string"
  1826. },
  1827. "groupId": {
  1828. "type": "string"
  1829. },
  1830. "hostHeader": {
  1831. "type": "string"
  1832. },
  1833. "hosts": {
  1834. "items": {
  1835. "type": "string"
  1836. },
  1837. "type": "array"
  1838. },
  1839. "inboundIds": {
  1840. "items": {
  1841. "type": "integer"
  1842. },
  1843. "type": "array"
  1844. },
  1845. "isDisabled": {
  1846. "type": "boolean"
  1847. },
  1848. "isHidden": {
  1849. "type": "boolean"
  1850. },
  1851. "keepSniBlank": {
  1852. "type": "boolean"
  1853. },
  1854. "mihomoIpVersion": {
  1855. "enum": [
  1856. "dual",
  1857. "ipv4",
  1858. "ipv6",
  1859. "ipv4-prefer",
  1860. "ipv6-prefer"
  1861. ],
  1862. "type": "string"
  1863. },
  1864. "mihomoX25519": {
  1865. "type": "boolean"
  1866. },
  1867. "muxParams": {
  1868. "type": "string"
  1869. },
  1870. "nodeGuids": {
  1871. "items": {
  1872. "type": "string"
  1873. },
  1874. "type": "array"
  1875. },
  1876. "overrideSniFromAddress": {
  1877. "type": "boolean"
  1878. },
  1879. "path": {
  1880. "type": "string"
  1881. },
  1882. "pinnedPeerCertSha256": {
  1883. "items": {
  1884. "type": "string"
  1885. },
  1886. "type": "array"
  1887. },
  1888. "port": {
  1889. "maximum": 65535,
  1890. "minimum": 0,
  1891. "type": "integer"
  1892. },
  1893. "remark": {
  1894. "maxLength": 256,
  1895. "type": "string"
  1896. },
  1897. "security": {
  1898. "enum": [
  1899. "same",
  1900. "tls",
  1901. "none",
  1902. "reality"
  1903. ],
  1904. "type": "string"
  1905. },
  1906. "serverDescription": {
  1907. "maxLength": 64,
  1908. "type": "string"
  1909. },
  1910. "shuffleHost": {
  1911. "type": "boolean"
  1912. },
  1913. "sni": {
  1914. "type": "string"
  1915. },
  1916. "sockoptParams": {
  1917. "type": "string"
  1918. },
  1919. "sortOrder": {
  1920. "type": "integer"
  1921. },
  1922. "tags": {
  1923. "items": {
  1924. "type": "string"
  1925. },
  1926. "type": "array"
  1927. },
  1928. "verifyPeerCertByName": {
  1929. "type": "string"
  1930. },
  1931. "vlessRoute": {
  1932. "type": "string"
  1933. }
  1934. },
  1935. "required": [
  1936. "allowInsecure",
  1937. "alpn",
  1938. "echConfigList",
  1939. "excludeFromSubTypes",
  1940. "finalMask",
  1941. "fingerprint",
  1942. "groupId",
  1943. "hostHeader",
  1944. "hosts",
  1945. "inboundIds",
  1946. "isDisabled",
  1947. "isHidden",
  1948. "keepSniBlank",
  1949. "mihomoIpVersion",
  1950. "mihomoX25519",
  1951. "muxParams",
  1952. "nodeGuids",
  1953. "overrideSniFromAddress",
  1954. "path",
  1955. "pinnedPeerCertSha256",
  1956. "port",
  1957. "remark",
  1958. "security",
  1959. "serverDescription",
  1960. "shuffleHost",
  1961. "sni",
  1962. "sockoptParams",
  1963. "sortOrder",
  1964. "tags",
  1965. "verifyPeerCertByName",
  1966. "vlessRoute"
  1967. ],
  1968. "type": "object"
  1969. },
  1970. "Inbound": {
  1971. "description": "Inbound represents an Xray inbound configuration with traffic statistics and settings.",
  1972. "properties": {
  1973. "clientStats": {
  1974. "description": "Client traffic statistics",
  1975. "items": {
  1976. "$ref": "#/components/schemas/ClientTraffic"
  1977. },
  1978. "type": "array"
  1979. },
  1980. "disableFlow": {
  1981. "example": false,
  1982. "type": "boolean"
  1983. },
  1984. "down": {
  1985. "description": "Download traffic in bytes",
  1986. "format": "int64",
  1987. "type": "integer"
  1988. },
  1989. "enable": {
  1990. "description": "Whether the inbound is enabled",
  1991. "example": true,
  1992. "type": "boolean"
  1993. },
  1994. "expiryTime": {
  1995. "description": "Expiration timestamp",
  1996. "format": "int64",
  1997. "type": "integer"
  1998. },
  1999. "fallbackParent": {
  2000. "allOf": [
  2001. {
  2002. "$ref": "#/components/schemas/FallbackParentInfo"
  2003. }
  2004. ],
  2005. "description": "FallbackParent is populated by the API layer when this inbound is\nattached as a fallback child of a VLESS/Trojan TCP-TLS master.\nThe frontend uses it to rewrite client-share links so they advertise\nthe master's externally reachable endpoint instead of the child's\nloopback listen. Not persisted.",
  2006. "nullable": true
  2007. },
  2008. "id": {
  2009. "description": "Unique identifier",
  2010. "example": 1,
  2011. "type": "integer"
  2012. },
  2013. "lastTrafficResetTime": {
  2014. "description": "Last traffic reset timestamp",
  2015. "format": "int64",
  2016. "type": "integer"
  2017. },
  2018. "listen": {
  2019. "description": "Xray configuration fields",
  2020. "type": "string"
  2021. },
  2022. "nodeId": {
  2023. "nullable": true,
  2024. "type": "integer"
  2025. },
  2026. "originNodeGuid": {
  2027. "description": "OriginNodeGuid is the panelGuid of the node that physically hosts this\ninbound, propagated up across hops (#4983). Empty for an inbound that\nlives on this panel's own xray; set to the originating node's GUID when\nthe inbound was synced from a node (kept as-is across further hops). Lets\nthe master attribute a deeply nested inbound to the real node instead of\nthe intermediate one it was fetched through.",
  2028. "type": "string"
  2029. },
  2030. "port": {
  2031. "example": 443,
  2032. "maximum": 65535,
  2033. "minimum": 0,
  2034. "type": "integer"
  2035. },
  2036. "protocol": {
  2037. "enum": [
  2038. "vmess",
  2039. "vless",
  2040. "trojan",
  2041. "shadowsocks",
  2042. "wireguard",
  2043. "hysteria",
  2044. "http",
  2045. "mixed",
  2046. "tunnel",
  2047. "tun",
  2048. "mtproto"
  2049. ],
  2050. "example": "vless",
  2051. "type": "string"
  2052. },
  2053. "remark": {
  2054. "description": "Human-readable remark",
  2055. "example": "VLESS-443",
  2056. "type": "string"
  2057. },
  2058. "settings": {},
  2059. "shareAddr": {
  2060. "type": "string"
  2061. },
  2062. "shareAddrStrategy": {
  2063. "enum": [
  2064. "node",
  2065. "listen",
  2066. "custom"
  2067. ],
  2068. "type": "string"
  2069. },
  2070. "sniffing": {},
  2071. "streamSettings": {},
  2072. "subSortIndex": {
  2073. "description": "1-based sort order of this inbound's links in subscription output only (lower first; ties by id)",
  2074. "example": 1,
  2075. "minimum": 1,
  2076. "type": "integer"
  2077. },
  2078. "tag": {
  2079. "example": "in-443-tcp",
  2080. "type": "string"
  2081. },
  2082. "total": {
  2083. "description": "Total traffic limit in bytes",
  2084. "format": "int64",
  2085. "type": "integer"
  2086. },
  2087. "trafficReset": {
  2088. "description": "Traffic reset schedule",
  2089. "enum": [
  2090. "never",
  2091. "hourly",
  2092. "daily",
  2093. "weekly",
  2094. "monthly"
  2095. ],
  2096. "type": "string"
  2097. },
  2098. "trafficResetDay": {
  2099. "description": "Day of month for monthly traffic resets",
  2100. "example": 1,
  2101. "maximum": 31,
  2102. "minimum": 1,
  2103. "type": "integer"
  2104. },
  2105. "up": {
  2106. "description": "Upload traffic in bytes",
  2107. "format": "int64",
  2108. "type": "integer"
  2109. }
  2110. },
  2111. "required": [
  2112. "clientStats",
  2113. "disableFlow",
  2114. "down",
  2115. "enable",
  2116. "expiryTime",
  2117. "id",
  2118. "lastTrafficResetTime",
  2119. "listen",
  2120. "port",
  2121. "protocol",
  2122. "remark",
  2123. "settings",
  2124. "shareAddr",
  2125. "shareAddrStrategy",
  2126. "sniffing",
  2127. "streamSettings",
  2128. "subSortIndex",
  2129. "tag",
  2130. "total",
  2131. "trafficReset",
  2132. "trafficResetDay",
  2133. "up"
  2134. ],
  2135. "type": "object"
  2136. },
  2137. "InboundClientIps": {
  2138. "description": "InboundClientIps stores IP addresses associated with inbound clients for access control.",
  2139. "properties": {
  2140. "clientEmail": {
  2141. "type": "string"
  2142. },
  2143. "id": {
  2144. "type": "integer"
  2145. },
  2146. "ips": {}
  2147. },
  2148. "required": [
  2149. "clientEmail",
  2150. "id",
  2151. "ips"
  2152. ],
  2153. "type": "object"
  2154. },
  2155. "InboundFallback": {
  2156. "properties": {
  2157. "alpn": {
  2158. "type": "string"
  2159. },
  2160. "childId": {
  2161. "type": "integer"
  2162. },
  2163. "dest": {
  2164. "type": "string"
  2165. },
  2166. "id": {
  2167. "type": "integer"
  2168. },
  2169. "masterId": {
  2170. "type": "integer"
  2171. },
  2172. "name": {
  2173. "type": "string"
  2174. },
  2175. "path": {
  2176. "type": "string"
  2177. },
  2178. "sortOrder": {
  2179. "type": "integer"
  2180. },
  2181. "xver": {
  2182. "type": "integer"
  2183. }
  2184. },
  2185. "required": [
  2186. "alpn",
  2187. "childId",
  2188. "dest",
  2189. "id",
  2190. "masterId",
  2191. "name",
  2192. "path",
  2193. "sortOrder",
  2194. "xver"
  2195. ],
  2196. "type": "object"
  2197. },
  2198. "InboundOption": {
  2199. "properties": {
  2200. "enable": {
  2201. "example": true,
  2202. "type": "boolean"
  2203. },
  2204. "id": {
  2205. "example": 1,
  2206. "type": "integer"
  2207. },
  2208. "listen": {
  2209. "type": "string"
  2210. },
  2211. "mtprotoDomain": {
  2212. "type": "string"
  2213. },
  2214. "nodeAddress": {
  2215. "description": "Share-host resolution inputs, mirroring the subscription's\nresolveInboundAddress so the clients page renders a node-managed WireGuard\nEndpoint that points at the node, not the master panel. NodeAddress is the\nhosting node's externally reachable address (empty for this panel's own\ninbounds); Listen and ShareAddrStrategy/ShareAddr feed the same\nnode→listen→custom fallback the share/QR links already use.",
  2216. "type": "string"
  2217. },
  2218. "nodeId": {
  2219. "description": "Hosting node; nil for this panel's own inbounds. Lets the clients\npage map a node filter onto inbound IDs (#4997).",
  2220. "nullable": true,
  2221. "type": "integer"
  2222. },
  2223. "port": {
  2224. "example": 443,
  2225. "type": "integer"
  2226. },
  2227. "protocol": {
  2228. "example": "vless",
  2229. "type": "string"
  2230. },
  2231. "remark": {
  2232. "example": "VLESS-443",
  2233. "type": "string"
  2234. },
  2235. "shareAddr": {
  2236. "type": "string"
  2237. },
  2238. "shareAddrStrategy": {
  2239. "type": "string"
  2240. },
  2241. "ssMethod": {
  2242. "type": "string"
  2243. },
  2244. "tag": {
  2245. "example": "in-443-tcp",
  2246. "type": "string"
  2247. },
  2248. "tlsFlowCapable": {
  2249. "example": true,
  2250. "type": "boolean"
  2251. },
  2252. "wgDns": {
  2253. "type": "string"
  2254. },
  2255. "wgMtu": {
  2256. "type": "integer"
  2257. },
  2258. "wgPublicKey": {
  2259. "type": "string"
  2260. }
  2261. },
  2262. "required": [
  2263. "enable",
  2264. "id",
  2265. "port",
  2266. "protocol",
  2267. "remark",
  2268. "ssMethod",
  2269. "tag",
  2270. "tlsFlowCapable"
  2271. ],
  2272. "type": "object"
  2273. },
  2274. "Msg": {
  2275. "properties": {
  2276. "msg": {
  2277. "type": "string"
  2278. },
  2279. "obj": {},
  2280. "success": {
  2281. "type": "boolean"
  2282. }
  2283. },
  2284. "required": [
  2285. "msg",
  2286. "obj",
  2287. "success"
  2288. ],
  2289. "type": "object"
  2290. },
  2291. "Node": {
  2292. "description": "Node represents a remote 3x-ui panel registered with the central panel.\nThe central panel polls each node's existing /panel/api/server/status\nendpoint over HTTP using the per-node ApiToken to populate the runtime\nstatus fields below.",
  2293. "properties": {
  2294. "activeCount": {
  2295. "example": 23,
  2296. "type": "integer"
  2297. },
  2298. "address": {
  2299. "example": "node1.example.com",
  2300. "type": "string"
  2301. },
  2302. "allowPrivateAddress": {
  2303. "type": "boolean"
  2304. },
  2305. "basePath": {
  2306. "example": "/",
  2307. "type": "string"
  2308. },
  2309. "clientCount": {
  2310. "example": 27,
  2311. "type": "integer"
  2312. },
  2313. "configDirty": {
  2314. "type": "boolean"
  2315. },
  2316. "configDirtyAt": {
  2317. "format": "int64",
  2318. "type": "integer"
  2319. },
  2320. "cpuPct": {
  2321. "example": 23.5,
  2322. "type": "number"
  2323. },
  2324. "createdAt": {
  2325. "example": 1700000000,
  2326. "format": "int64",
  2327. "type": "integer"
  2328. },
  2329. "depletedCount": {
  2330. "example": 1,
  2331. "type": "integer"
  2332. },
  2333. "disabledCount": {
  2334. "example": 3,
  2335. "type": "integer"
  2336. },
  2337. "enable": {
  2338. "example": true,
  2339. "type": "boolean"
  2340. },
  2341. "guid": {
  2342. "description": "Guid is the remote panel's stable self-identifier (its panelGuid),\nlearned from each heartbeat. It is the globally stable node identity used\nto attribute online clients/inbounds to the physical node across a chain\nof nodes (#4983); panel-local autoincrement ids don't survive a hop.\nObserved-state only — never user-edited.",
  2343. "type": "string"
  2344. },
  2345. "id": {
  2346. "example": 1,
  2347. "type": "integer"
  2348. },
  2349. "inboundCount": {
  2350. "example": 5,
  2351. "type": "integer"
  2352. },
  2353. "inboundSyncMode": {
  2354. "enum": [
  2355. "all",
  2356. "selected"
  2357. ],
  2358. "type": "string"
  2359. },
  2360. "inboundTags": {
  2361. "items": {
  2362. "type": "string"
  2363. },
  2364. "type": "array"
  2365. },
  2366. "lastError": {
  2367. "type": "string"
  2368. },
  2369. "lastHeartbeat": {
  2370. "description": "unix seconds, 0 = never",
  2371. "example": 1700000000,
  2372. "format": "int64",
  2373. "type": "integer"
  2374. },
  2375. "latencyMs": {
  2376. "example": 42,
  2377. "type": "integer"
  2378. },
  2379. "memPct": {
  2380. "example": 45.1,
  2381. "type": "number"
  2382. },
  2383. "name": {
  2384. "example": "de-fra-1",
  2385. "type": "string"
  2386. },
  2387. "netDown": {
  2388. "example": 2097152,
  2389. "format": "int64",
  2390. "type": "integer"
  2391. },
  2392. "netUp": {
  2393. "example": 1048576,
  2394. "format": "int64",
  2395. "type": "integer"
  2396. },
  2397. "onlineCount": {
  2398. "example": 3,
  2399. "type": "integer"
  2400. },
  2401. "outboundTag": {
  2402. "type": "string"
  2403. },
  2404. "panelVersion": {
  2405. "example": "v3.x.x",
  2406. "type": "string"
  2407. },
  2408. "parentGuid": {
  2409. "description": "ParentGuid + Transitive are set only when a node is surfaced as part of a\nnode tree (#4983): direct nodes carry the master panel's own GUID, a\ntransitive sub-node carries its parent node's GUID. Transitive nodes are\nread-only projections (Id == 0, not persisted) — never edited or deployed.",
  2410. "type": "string"
  2411. },
  2412. "pinnedCertSha256": {
  2413. "type": "string"
  2414. },
  2415. "port": {
  2416. "example": 2053,
  2417. "maximum": 65535,
  2418. "minimum": 1,
  2419. "type": "integer"
  2420. },
  2421. "remark": {
  2422. "type": "string"
  2423. },
  2424. "scheme": {
  2425. "enum": [
  2426. "http",
  2427. "https"
  2428. ],
  2429. "example": "https",
  2430. "type": "string"
  2431. },
  2432. "status": {
  2433. "description": "Heartbeat-updated fields. UpdatedAt advances on every probe even when\nthe row is otherwise unchanged so the UI's \"last seen\" tooltip is\ntruthful without us having to read LastHeartbeat separately.\nonline|offline|unknown",
  2434. "example": "online",
  2435. "type": "string"
  2436. },
  2437. "tlsVerifyMode": {
  2438. "enum": [
  2439. "verify",
  2440. "skip",
  2441. "pin",
  2442. "mtls"
  2443. ],
  2444. "type": "string"
  2445. },
  2446. "transitive": {
  2447. "type": "boolean"
  2448. },
  2449. "updatedAt": {
  2450. "example": 1700000000,
  2451. "format": "int64",
  2452. "type": "integer"
  2453. },
  2454. "uptimeSecs": {
  2455. "example": 86400,
  2456. "format": "int64",
  2457. "type": "integer"
  2458. },
  2459. "xrayError": {
  2460. "type": "string"
  2461. },
  2462. "xrayState": {
  2463. "description": "XrayState and XrayError are captured from the remote node's /panel/api/server/status\nduring heartbeats. They let the central panel distinguish \"panel API reachable\"\n(status=online) from \"Xray core itself has failed on the node\" for monitoring.",
  2464. "type": "string"
  2465. },
  2466. "xrayVersion": {
  2467. "example": "25.10.31",
  2468. "type": "string"
  2469. }
  2470. },
  2471. "required": [
  2472. "activeCount",
  2473. "address",
  2474. "allowPrivateAddress",
  2475. "basePath",
  2476. "clientCount",
  2477. "configDirty",
  2478. "configDirtyAt",
  2479. "cpuPct",
  2480. "createdAt",
  2481. "depletedCount",
  2482. "disabledCount",
  2483. "enable",
  2484. "guid",
  2485. "id",
  2486. "inboundCount",
  2487. "inboundSyncMode",
  2488. "inboundTags",
  2489. "lastError",
  2490. "lastHeartbeat",
  2491. "latencyMs",
  2492. "memPct",
  2493. "name",
  2494. "netDown",
  2495. "netUp",
  2496. "onlineCount",
  2497. "outboundTag",
  2498. "panelVersion",
  2499. "pinnedCertSha256",
  2500. "port",
  2501. "remark",
  2502. "scheme",
  2503. "status",
  2504. "tlsVerifyMode",
  2505. "updatedAt",
  2506. "uptimeSecs",
  2507. "xrayError",
  2508. "xrayState",
  2509. "xrayVersion"
  2510. ],
  2511. "type": "object"
  2512. },
  2513. "NodeMutationRequest": {
  2514. "description": "NodeMutationRequest is the node write/probe contract. ApiToken is accepted\nonly as input. On update, nil means keep the stored token; replacement and\nclearing are explicit and mutually exclusive.",
  2515. "properties": {
  2516. "address": {
  2517. "type": "string"
  2518. },
  2519. "allowPrivateAddress": {
  2520. "type": "boolean"
  2521. },
  2522. "apiToken": {
  2523. "nullable": true,
  2524. "type": "string"
  2525. },
  2526. "basePath": {
  2527. "type": "string"
  2528. },
  2529. "clearApiToken": {
  2530. "type": "boolean"
  2531. },
  2532. "enable": {
  2533. "type": "boolean"
  2534. },
  2535. "id": {
  2536. "type": "integer"
  2537. },
  2538. "inboundSyncMode": {
  2539. "enum": [
  2540. "all",
  2541. "selected"
  2542. ],
  2543. "type": "string"
  2544. },
  2545. "inboundTags": {
  2546. "items": {
  2547. "type": "string"
  2548. },
  2549. "type": "array"
  2550. },
  2551. "name": {
  2552. "type": "string"
  2553. },
  2554. "outboundTag": {
  2555. "type": "string"
  2556. },
  2557. "pinnedCertSha256": {
  2558. "type": "string"
  2559. },
  2560. "port": {
  2561. "maximum": 65535,
  2562. "minimum": 1,
  2563. "type": "integer"
  2564. },
  2565. "remark": {
  2566. "type": "string"
  2567. },
  2568. "scheme": {
  2569. "enum": [
  2570. "http",
  2571. "https"
  2572. ],
  2573. "type": "string"
  2574. },
  2575. "tlsVerifyMode": {
  2576. "enum": [
  2577. "verify",
  2578. "skip",
  2579. "pin",
  2580. "mtls"
  2581. ],
  2582. "type": "string"
  2583. }
  2584. },
  2585. "required": [
  2586. "address",
  2587. "allowPrivateAddress",
  2588. "basePath",
  2589. "enable",
  2590. "id",
  2591. "inboundSyncMode",
  2592. "inboundTags",
  2593. "name",
  2594. "outboundTag",
  2595. "pinnedCertSha256",
  2596. "port",
  2597. "remark",
  2598. "scheme",
  2599. "tlsVerifyMode"
  2600. ],
  2601. "type": "object"
  2602. },
  2603. "NodeView": {
  2604. "description": "NodeView is the browser/API read contract for nodes. Credentials are\nwrite-only: responses expose only whether a node has a token configured.",
  2605. "properties": {
  2606. "activeCount": {
  2607. "example": 20,
  2608. "type": "integer"
  2609. },
  2610. "address": {
  2611. "example": "node.example.com",
  2612. "type": "string"
  2613. },
  2614. "allowPrivateAddress": {
  2615. "example": false,
  2616. "type": "boolean"
  2617. },
  2618. "basePath": {
  2619. "example": "/",
  2620. "type": "string"
  2621. },
  2622. "clientCount": {
  2623. "example": 25,
  2624. "type": "integer"
  2625. },
  2626. "configDirty": {
  2627. "example": false,
  2628. "type": "boolean"
  2629. },
  2630. "configDirtyAt": {
  2631. "example": 0,
  2632. "format": "int64",
  2633. "type": "integer"
  2634. },
  2635. "cpuPct": {
  2636. "example": 12.5,
  2637. "type": "number"
  2638. },
  2639. "createdAt": {
  2640. "example": 1700000000,
  2641. "format": "int64",
  2642. "type": "integer"
  2643. },
  2644. "depletedCount": {
  2645. "example": 1,
  2646. "type": "integer"
  2647. },
  2648. "disabledCount": {
  2649. "example": 2,
  2650. "type": "integer"
  2651. },
  2652. "enable": {
  2653. "example": true,
  2654. "type": "boolean"
  2655. },
  2656. "guid": {
  2657. "example": "node-guid",
  2658. "type": "string"
  2659. },
  2660. "hasApiToken": {
  2661. "example": true,
  2662. "type": "boolean"
  2663. },
  2664. "id": {
  2665. "example": 1,
  2666. "type": "integer"
  2667. },
  2668. "inboundCount": {
  2669. "example": 3,
  2670. "type": "integer"
  2671. },
  2672. "inboundSyncMode": {
  2673. "example": "all",
  2674. "type": "string"
  2675. },
  2676. "inboundTags": {
  2677. "example": [
  2678. "in-443-tcp"
  2679. ],
  2680. "items": {
  2681. "type": "string"
  2682. },
  2683. "type": "array"
  2684. },
  2685. "lastError": {
  2686. "type": "string"
  2687. },
  2688. "lastHeartbeat": {
  2689. "example": 1700000000,
  2690. "format": "int64",
  2691. "type": "integer"
  2692. },
  2693. "latencyMs": {
  2694. "example": 42,
  2695. "type": "integer"
  2696. },
  2697. "memPct": {
  2698. "example": 45.2,
  2699. "type": "number"
  2700. },
  2701. "name": {
  2702. "example": "edge-1",
  2703. "type": "string"
  2704. },
  2705. "netDown": {
  2706. "example": 1048576,
  2707. "format": "int64",
  2708. "type": "integer"
  2709. },
  2710. "netUp": {
  2711. "example": 2097152,
  2712. "format": "int64",
  2713. "type": "integer"
  2714. },
  2715. "onlineCount": {
  2716. "example": 5,
  2717. "type": "integer"
  2718. },
  2719. "outboundTag": {
  2720. "example": "direct",
  2721. "type": "string"
  2722. },
  2723. "panelVersion": {
  2724. "example": "v3.x.x",
  2725. "type": "string"
  2726. },
  2727. "parentGuid": {
  2728. "type": "string"
  2729. },
  2730. "pinnedCertSha256": {
  2731. "type": "string"
  2732. },
  2733. "port": {
  2734. "example": 2053,
  2735. "type": "integer"
  2736. },
  2737. "remark": {
  2738. "example": "Primary edge",
  2739. "type": "string"
  2740. },
  2741. "scheme": {
  2742. "example": "https",
  2743. "type": "string"
  2744. },
  2745. "status": {
  2746. "example": "online",
  2747. "type": "string"
  2748. },
  2749. "tlsVerifyMode": {
  2750. "example": "verify",
  2751. "type": "string"
  2752. },
  2753. "transitive": {
  2754. "example": false,
  2755. "type": "boolean"
  2756. },
  2757. "updatedAt": {
  2758. "example": 1700003600,
  2759. "format": "int64",
  2760. "type": "integer"
  2761. },
  2762. "uptimeSecs": {
  2763. "example": 86400,
  2764. "format": "int64",
  2765. "type": "integer"
  2766. },
  2767. "xrayError": {
  2768. "type": "string"
  2769. },
  2770. "xrayState": {
  2771. "example": "running",
  2772. "type": "string"
  2773. },
  2774. "xrayVersion": {
  2775. "example": "25.10.31",
  2776. "type": "string"
  2777. }
  2778. },
  2779. "required": [
  2780. "activeCount",
  2781. "address",
  2782. "allowPrivateAddress",
  2783. "basePath",
  2784. "clientCount",
  2785. "configDirty",
  2786. "configDirtyAt",
  2787. "cpuPct",
  2788. "createdAt",
  2789. "depletedCount",
  2790. "disabledCount",
  2791. "enable",
  2792. "guid",
  2793. "hasApiToken",
  2794. "id",
  2795. "inboundCount",
  2796. "inboundSyncMode",
  2797. "inboundTags",
  2798. "lastError",
  2799. "lastHeartbeat",
  2800. "latencyMs",
  2801. "memPct",
  2802. "name",
  2803. "netDown",
  2804. "netUp",
  2805. "onlineCount",
  2806. "outboundTag",
  2807. "panelVersion",
  2808. "pinnedCertSha256",
  2809. "port",
  2810. "remark",
  2811. "scheme",
  2812. "status",
  2813. "tlsVerifyMode",
  2814. "updatedAt",
  2815. "uptimeSecs",
  2816. "xrayError",
  2817. "xrayState",
  2818. "xrayVersion"
  2819. ],
  2820. "type": "object"
  2821. },
  2822. "OutboundTraffics": {
  2823. "description": "OutboundTraffics tracks traffic statistics for Xray outbound connections.",
  2824. "properties": {
  2825. "down": {
  2826. "format": "int64",
  2827. "type": "integer"
  2828. },
  2829. "id": {
  2830. "type": "integer"
  2831. },
  2832. "tag": {
  2833. "type": "string"
  2834. },
  2835. "total": {
  2836. "format": "int64",
  2837. "type": "integer"
  2838. },
  2839. "up": {
  2840. "format": "int64",
  2841. "type": "integer"
  2842. }
  2843. },
  2844. "required": [
  2845. "down",
  2846. "id",
  2847. "tag",
  2848. "total",
  2849. "up"
  2850. ],
  2851. "type": "object"
  2852. },
  2853. "PanelUpdateStatus": {
  2854. "description": "PanelUpdateStatus reports the outcome of the most recently launched panel\nself-update. RunID lets the caller confirm this status belongs to the\nupdate it started rather than a stale result left over from an earlier\nrun; State is one of \"pending\", \"success\", or \"failed\". RunID is a decimal\nstring, not a JSON number: it's a formatted UnixNano timestamp, and\nJavaScript's number type can't represent that precisely (it exceeds\nNumber.MAX_SAFE_INTEGER), which would let two different runs round to the\nsame value on the wire and defeat the whole point of this field.",
  2855. "properties": {
  2856. "exitCode": {
  2857. "example": 0,
  2858. "type": "integer"
  2859. },
  2860. "finishedAt": {
  2861. "example": 1735689612,
  2862. "format": "int64",
  2863. "type": "integer"
  2864. },
  2865. "runId": {
  2866. "example": "1735689600123456789",
  2867. "type": "string"
  2868. },
  2869. "state": {
  2870. "example": "success",
  2871. "type": "string"
  2872. }
  2873. },
  2874. "required": [
  2875. "exitCode",
  2876. "finishedAt",
  2877. "runId",
  2878. "state"
  2879. ],
  2880. "type": "object"
  2881. },
  2882. "ProbeResultUI": {
  2883. "properties": {
  2884. "cpuPct": {
  2885. "example": 12.5,
  2886. "type": "number"
  2887. },
  2888. "error": {
  2889. "type": "string"
  2890. },
  2891. "latencyMs": {
  2892. "example": 42,
  2893. "type": "integer"
  2894. },
  2895. "memPct": {
  2896. "example": 45.2,
  2897. "type": "number"
  2898. },
  2899. "panelVersion": {
  2900. "example": "v3.x.x",
  2901. "type": "string"
  2902. },
  2903. "status": {
  2904. "example": "online",
  2905. "type": "string"
  2906. },
  2907. "uptimeSecs": {
  2908. "example": 86400,
  2909. "format": "int64",
  2910. "type": "integer"
  2911. },
  2912. "xrayError": {
  2913. "type": "string"
  2914. },
  2915. "xrayState": {
  2916. "description": "XrayState/XrayError are populated on successful probes even when the node's\nXray core is not healthy. The UI uses them for a distinct \"panel ok, xray failed\" indicator.",
  2917. "type": "string"
  2918. },
  2919. "xrayVersion": {
  2920. "example": "25.10.31",
  2921. "type": "string"
  2922. }
  2923. },
  2924. "required": [
  2925. "cpuPct",
  2926. "error",
  2927. "latencyMs",
  2928. "memPct",
  2929. "panelVersion",
  2930. "status",
  2931. "uptimeSecs",
  2932. "xrayError",
  2933. "xrayState",
  2934. "xrayVersion"
  2935. ],
  2936. "type": "object"
  2937. },
  2938. "RealityScanResult": {
  2939. "properties": {
  2940. "alpn": {
  2941. "example": "h2",
  2942. "type": "string"
  2943. },
  2944. "certChainValid": {
  2945. "description": "CertChainValid ignores the name: a trusted chain presented for other names\nstill has serverNames the panel can offer instead of the failing SNI.",
  2946. "example": true,
  2947. "type": "boolean"
  2948. },
  2949. "certIssuer": {
  2950. "example": "Google Trust Services",
  2951. "type": "string"
  2952. },
  2953. "certSubject": {
  2954. "example": "cloudflare.com",
  2955. "type": "string"
  2956. },
  2957. "certValid": {
  2958. "example": true,
  2959. "type": "boolean"
  2960. },
  2961. "curveID": {
  2962. "example": "X25519",
  2963. "type": "string"
  2964. },
  2965. "feasible": {
  2966. "example": true,
  2967. "type": "boolean"
  2968. },
  2969. "h2": {
  2970. "example": true,
  2971. "type": "boolean"
  2972. },
  2973. "host": {
  2974. "example": "www.cloudflare.com",
  2975. "type": "string"
  2976. },
  2977. "ip": {
  2978. "example": "104.16.124.96",
  2979. "type": "string"
  2980. },
  2981. "latencyMs": {
  2982. "example": 180,
  2983. "type": "integer"
  2984. },
  2985. "notAfter": {
  2986. "example": "2026-08-01T00:00:00Z",
  2987. "type": "string"
  2988. },
  2989. "port": {
  2990. "example": 443,
  2991. "type": "integer"
  2992. },
  2993. "privateTarget": {
  2994. "description": "PrivateTarget marks a target that resolves to a loopback/private/link-local\naddress: blocked before the probe unless the caller opted in, then flagged.",
  2995. "example": false,
  2996. "type": "boolean"
  2997. },
  2998. "reason": {
  2999. "type": "string"
  3000. },
  3001. "serverNames": {
  3002. "items": {
  3003. "type": "string"
  3004. },
  3005. "type": "array"
  3006. },
  3007. "target": {
  3008. "example": "www.cloudflare.com:443",
  3009. "type": "string"
  3010. },
  3011. "tls13": {
  3012. "example": true,
  3013. "type": "boolean"
  3014. },
  3015. "tlsVersion": {
  3016. "example": "1.3",
  3017. "type": "string"
  3018. },
  3019. "x25519": {
  3020. "example": true,
  3021. "type": "boolean"
  3022. }
  3023. },
  3024. "required": [
  3025. "alpn",
  3026. "certChainValid",
  3027. "certIssuer",
  3028. "certSubject",
  3029. "certValid",
  3030. "curveID",
  3031. "feasible",
  3032. "h2",
  3033. "host",
  3034. "ip",
  3035. "latencyMs",
  3036. "notAfter",
  3037. "port",
  3038. "privateTarget",
  3039. "reason",
  3040. "serverNames",
  3041. "target",
  3042. "tls13",
  3043. "tlsVersion",
  3044. "x25519"
  3045. ],
  3046. "type": "object"
  3047. },
  3048. "Setting": {
  3049. "description": "Setting stores key-value configuration settings for the 3x-ui panel.",
  3050. "properties": {
  3051. "id": {
  3052. "type": "integer"
  3053. },
  3054. "key": {
  3055. "type": "string"
  3056. },
  3057. "value": {
  3058. "type": "string"
  3059. }
  3060. },
  3061. "required": [
  3062. "id",
  3063. "key",
  3064. "value"
  3065. ],
  3066. "type": "object"
  3067. },
  3068. "User": {
  3069. "description": "User represents a user account in the 3x-ui panel.",
  3070. "properties": {
  3071. "id": {
  3072. "type": "integer"
  3073. },
  3074. "password": {
  3075. "type": "string"
  3076. },
  3077. "username": {
  3078. "type": "string"
  3079. }
  3080. },
  3081. "required": [
  3082. "id",
  3083. "password",
  3084. "username"
  3085. ],
  3086. "type": "object"
  3087. }
  3088. };