system.graphql 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. # ===============================================
  2. # SYSTEM
  3. # ===============================================
  4. extend type Query {
  5. systemExtensions: [SystemExtension]
  6. systemFlags: JSON
  7. systemInfo: SystemInfo
  8. systemInstances: [SystemInstance]
  9. systemSecurity: SystemSecurity
  10. systemJobs(
  11. states: [SystemJobState]
  12. ): [SystemJob]
  13. systemJobsScheduled: [SystemJobScheduled]
  14. systemJobsUpcoming: [SystemJobUpcoming]
  15. systemSearch: SystemSearch
  16. }
  17. extend type Mutation {
  18. cancelJob(
  19. id: UUID!
  20. ): DefaultResponse
  21. checkForUpdates: SystemCheckUpdateResponse
  22. disconnectWS: DefaultResponse
  23. installExtension(
  24. key: String!
  25. ): DefaultResponse
  26. retryJob(
  27. id: UUID!
  28. ): DefaultResponse
  29. updateSystemSearch(
  30. termHighlighting: Boolean
  31. dictOverrides: String
  32. ): DefaultResponse
  33. updateSystemFlags(
  34. flags: JSON!
  35. ): DefaultResponse
  36. updateSystemSecurity(
  37. authJwtAudience: String
  38. authJwtExpiration: String
  39. authJwtRenewablePeriod: String
  40. corsConfig: String
  41. corsMode: SystemSecurityCorsMode
  42. cspDirectives: String
  43. disallowFloc: Boolean
  44. disallowIframe: Boolean
  45. disallowOpenRedirect: Boolean
  46. enforceCsp: Boolean
  47. enforceHsts: Boolean
  48. enforceSameOriginReferrerPolicy: Boolean
  49. forceAssetDownload: Boolean
  50. hstsDuration: Int
  51. trustProxy: Boolean
  52. uploadMaxFiles: Int
  53. uploadMaxFileSize: Int
  54. uploadScanSVG: Boolean
  55. ): DefaultResponse
  56. }
  57. # -----------------------------------------------
  58. # TYPES
  59. # -----------------------------------------------
  60. type SystemInfo {
  61. configFile: String
  62. cpuCores: Int
  63. currentVersion: String
  64. dbHost: String
  65. dbType: String
  66. dbVersion: String
  67. groupsTotal: Int
  68. hostname: String
  69. httpPort: Int
  70. httpRedirection: Boolean
  71. httpsPort: Int
  72. isMailConfigured: Boolean
  73. isSchedulerHealthy: Boolean
  74. latestVersion: String
  75. latestVersionReleaseDate: Date
  76. nodeVersion: String
  77. operatingSystem: String
  78. pagesTotal: Int
  79. platform: String
  80. ramTotal: String
  81. sslDomain: String
  82. sslExpirationDate: Date
  83. sslProvider: String
  84. sslStatus: String
  85. sslSubscriberEmail: String
  86. tagsTotal: Int
  87. upgradeCapable: Boolean
  88. usersTotal: Int
  89. workingDirectory: String
  90. }
  91. type SystemInstance {
  92. id: String
  93. activeConnections: Int
  94. activeListeners: Int
  95. dbUser: String
  96. dbFirstSeen: Date
  97. dbLastSeen: Date
  98. ip: String
  99. }
  100. enum SystemImportUsersGroupMode {
  101. MULTI
  102. SINGLE
  103. NONE
  104. }
  105. type SystemImportUsersResponse {
  106. operation: Operation
  107. usersCount: Int
  108. groupsCount: Int
  109. failed: [SystemImportUsersResponseFailed]
  110. }
  111. type SystemImportUsersResponseFailed {
  112. provider: String
  113. email: String
  114. error: String
  115. }
  116. type SystemExtension {
  117. key: String
  118. title: String
  119. description: String
  120. isInstalled: Boolean
  121. isInstallable: Boolean
  122. isCompatible: Boolean
  123. }
  124. type SystemSecurity {
  125. authJwtAudience: String
  126. authJwtExpiration: String
  127. authJwtRenewablePeriod: String
  128. corsConfig: String
  129. corsMode: SystemSecurityCorsMode
  130. cspDirectives: String
  131. disallowFloc: Boolean
  132. disallowIframe: Boolean
  133. disallowOpenRedirect: Boolean
  134. enforceCsp: Boolean
  135. enforceHsts: Boolean
  136. enforceSameOriginReferrerPolicy: Boolean
  137. forceAssetDownload: Boolean
  138. hstsDuration: Int
  139. trustProxy: Boolean
  140. uploadMaxFiles: Int
  141. uploadMaxFileSize: Int
  142. uploadScanSVG: Boolean
  143. }
  144. enum SystemSecurityCorsMode {
  145. OFF
  146. REFLECT
  147. HOSTNAMES
  148. REGEX
  149. }
  150. type SystemJob {
  151. id: UUID
  152. task: String
  153. state: SystemJobState
  154. useWorker: Boolean
  155. wasScheduled: Boolean
  156. payload: JSON
  157. attempt: Int
  158. maxRetries: Int
  159. lastErrorMessage: String
  160. executedBy: String
  161. createdAt: Date
  162. startedAt: Date
  163. completedAt: Date
  164. }
  165. type SystemJobScheduled {
  166. id: UUID
  167. task: String
  168. cron: String
  169. type: String
  170. payload: JSON
  171. createdAt: Date
  172. updatedAt: Date
  173. }
  174. type SystemJobUpcoming {
  175. id: UUID
  176. task: String
  177. useWorker: Boolean
  178. payload: JSON
  179. retries: Int
  180. maxRetries: Int
  181. waitUntil: Date
  182. isScheduled: Boolean
  183. createdBy: String
  184. createdAt: Date
  185. updatedAt: Date
  186. }
  187. enum SystemJobState {
  188. ACTIVE
  189. COMPLETED
  190. FAILED
  191. INTERRUPTED
  192. }
  193. type SystemCheckUpdateResponse {
  194. operation: Operation
  195. current: String
  196. latest: String
  197. latestDate: String
  198. }
  199. type SystemSearch {
  200. termHighlighting: Boolean
  201. dictOverrides: String
  202. }