system.graphql 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. # ===============================================
  2. # SYSTEM
  3. # ===============================================
  4. extend type Query {
  5. system: SystemQuery
  6. }
  7. extend type Mutation {
  8. system: SystemMutation
  9. }
  10. # -----------------------------------------------
  11. # QUERIES
  12. # -----------------------------------------------
  13. type SystemQuery {
  14. flags: [SystemFlag] @auth(requires: ["manage:system"])
  15. info: SystemInfo
  16. extensions: [SystemExtension] @auth(requires: ["manage:system"])
  17. exportStatus: SystemExportStatus @auth(requires: ["manage:system"])
  18. }
  19. # -----------------------------------------------
  20. # MUTATIONS
  21. # -----------------------------------------------
  22. type SystemMutation {
  23. updateFlags(
  24. flags: [SystemFlagInput]!
  25. ): DefaultResponse @auth(requires: ["manage:system"])
  26. resetTelemetryClientId: DefaultResponse @auth(requires: ["manage:system"])
  27. setTelemetry(
  28. enabled: Boolean!
  29. ): DefaultResponse @auth(requires: ["manage:system"])
  30. performUpgrade: DefaultResponse @auth(requires: ["manage:system"])
  31. importUsersFromV1(
  32. mongoDbConnString: String!
  33. groupMode: SystemImportUsersGroupMode!
  34. ): SystemImportUsersResponse @auth(requires: ["manage:system"])
  35. setHTTPSRedirection(
  36. enabled: Boolean!
  37. ): DefaultResponse @auth(requires: ["manage:system"])
  38. renewHTTPSCertificate: DefaultResponse @auth(requires: ["manage:system"])
  39. export(
  40. entities: [String]!
  41. path: String!
  42. ): DefaultResponse @auth(requires: ["manage:system"])
  43. }
  44. # -----------------------------------------------
  45. # TYPES
  46. # -----------------------------------------------
  47. type SystemFlag {
  48. key: String!
  49. value: Boolean!
  50. }
  51. input SystemFlagInput {
  52. key: String!
  53. value: Boolean!
  54. }
  55. type SystemInfo {
  56. configFile: String @auth(requires: ["manage:system"])
  57. cpuCores: Int @auth(requires: ["manage:system"])
  58. currentVersion: String @auth(requires: ["manage:system"])
  59. dbHost: String @auth(requires: ["manage:system"])
  60. dbType: String @auth(requires: ["manage:system"])
  61. dbVersion: String @auth(requires: ["manage:system"])
  62. groupsTotal: Int @auth(requires: ["manage:system", "manage:navigation", "manage:groups", "write:groups", "manage:users", "write:users"])
  63. hostname: String @auth(requires: ["manage:system"])
  64. httpPort: Int @auth(requires: ["manage:system"])
  65. httpRedirection: Boolean @auth(requires: ["manage:system"])
  66. httpsPort: Int @auth(requires: ["manage:system"])
  67. latestVersion: String @auth(requires: ["manage:system"])
  68. latestVersionReleaseDate: Date @auth(requires: ["manage:system"])
  69. nodeVersion: String @auth(requires: ["manage:system"])
  70. operatingSystem: String @auth(requires: ["manage:system"])
  71. pagesTotal: Int @auth(requires: ["manage:system", "manage:navigation", "manage:pages", "delete:pages"])
  72. platform: String @auth(requires: ["manage:system"])
  73. ramTotal: String @auth(requires: ["manage:system"])
  74. sslDomain: String @auth(requires: ["manage:system"])
  75. sslExpirationDate: Date @auth(requires: ["manage:system"])
  76. sslProvider: String @auth(requires: ["manage:system"])
  77. sslStatus: String @auth(requires: ["manage:system"])
  78. sslSubscriberEmail: String @auth(requires: ["manage:system"])
  79. tagsTotal: Int @auth(requires: ["manage:system", "manage:navigation", "manage:pages", "delete:pages"])
  80. telemetry: Boolean @auth(requires: ["manage:system"])
  81. telemetryClientId: String @auth(requires: ["manage:system"])
  82. upgradeCapable: Boolean @auth(requires: ["manage:system"])
  83. usersTotal: Int @auth(requires: ["manage:system", "manage:navigation", "manage:groups", "write:groups", "manage:users", "write:users"])
  84. workingDirectory: String @auth(requires: ["manage:system"])
  85. }
  86. enum SystemImportUsersGroupMode {
  87. MULTI
  88. SINGLE
  89. NONE
  90. }
  91. type SystemImportUsersResponse {
  92. responseResult: ResponseStatus
  93. usersCount: Int
  94. groupsCount: Int
  95. failed: [SystemImportUsersResponseFailed]
  96. }
  97. type SystemImportUsersResponseFailed {
  98. provider: String
  99. email: String
  100. error: String
  101. }
  102. type SystemExtension {
  103. key: String!
  104. title: String!
  105. description: String!
  106. isInstalled: Boolean!
  107. isCompatible: Boolean!
  108. }
  109. type SystemExportStatus {
  110. status: String
  111. progress: Int
  112. message: String
  113. startedAt: Date
  114. }