system.graphql 2.9 KB
Newer Older
1 2 3 4 5 6 7 8
# ===============================================
# SYSTEM
# ===============================================

extend type Query {
  system: SystemQuery
}

Nick's avatar
Nick committed
9 10 11 12
extend type Mutation {
  system: SystemMutation
}

13 14 15 16 17
# -----------------------------------------------
# QUERIES
# -----------------------------------------------

type SystemQuery {
Nick's avatar
Nick committed
18
  flags: [SystemFlag] @auth(requires: ["manage:system"])
19
  info: SystemInfo
20 21 22 23 24 25
}

# -----------------------------------------------
# MUTATIONS
# -----------------------------------------------

Nick's avatar
Nick committed
26 27 28 29
type SystemMutation {
  updateFlags(
    flags: [SystemFlagInput]!
  ): DefaultResponse @auth(requires: ["manage:system"])
Nick's avatar
Nick committed
30 31 32 33 34 35

  resetTelemetryClientId: DefaultResponse @auth(requires: ["manage:system"])

  setTelemetry(
    enabled: Boolean!
  ): DefaultResponse @auth(requires: ["manage:system"])
Nick's avatar
Nick committed
36 37

  performUpgrade: DefaultResponse @auth(requires: ["manage:system"])
38 39 40 41 42

  importUsersFromV1(
    mongoDbConnString: String!
    groupMode: SystemImportUsersGroupMode!
  ): SystemImportUsersResponse @auth(requires:  ["manage:system"])
Nick's avatar
Nick committed
43 44
}

45 46 47 48
# -----------------------------------------------
# TYPES
# -----------------------------------------------

Nick's avatar
Nick committed
49 50 51 52 53 54 55 56 57 58
type SystemFlag {
  key: String!
  value: Boolean!
}

input SystemFlagInput {
  key: String!
  value: Boolean!
}

59
type SystemInfo {
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
  configFile: String @auth(requires: ["manage:system"])
  cpuCores: Int @auth(requires: ["manage:system"])
  currentVersion: String @auth(requires: ["manage:system"])
  dbHost: String @auth(requires: ["manage:system"])
  dbType: String @auth(requires: ["manage:system"])
  dbVersion: String @auth(requires: ["manage:system"])
  groupsTotal: Int @auth(requires: ["manage:system", "manage:navigation", "manage:groups", "write:groups", "manage:users", "write:users"])
  hostname: String @auth(requires: ["manage:system"])
  latestVersion: String @auth(requires: ["manage:system"])
  latestVersionReleaseDate: Date @auth(requires: ["manage:system"])
  nodeVersion: String @auth(requires: ["manage:system"])
  operatingSystem: String @auth(requires: ["manage:system"])
  pagesTotal: Int @auth(requires: ["manage:system", "manage:navigation", "manage:pages", "delete:pages"])
  platform: String @auth(requires: ["manage:system"])
  ramTotal: String @auth(requires: ["manage:system"])
Nick's avatar
Nick committed
75 76
  telemetry: Boolean @auth(requires: ["manage:system"])
  telemetryClientId: String @auth(requires: ["manage:system"])
Nick's avatar
Nick committed
77
  upgradeCapable: Boolean @auth(requires: ["manage:system"])
78 79
  usersTotal: Int @auth(requires: ["manage:system", "manage:navigation", "manage:groups", "write:groups", "manage:users", "write:users"])
  workingDirectory: String @auth(requires: ["manage:system"])
80
}
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

enum SystemImportUsersGroupMode {
  MULTI
  SINGLE
  NONE
}

type SystemImportUsersResponse {
  responseResult: ResponseStatus
  usersCount: Int
  groupsCount: Int
  failed: [SystemImportUsersResponseFailed]
}

type SystemImportUsersResponseFailed {
  provider: String
  email: String
  error: String
}