* feat: export content utility (wip) * feat: export navigation + groups + users * feat: export comments + navigation + pages + pages history + settings * feat: export assets
		
			
				
	
	
		
			137 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
# ===============================================
 | 
						|
# SYSTEM
 | 
						|
# ===============================================
 | 
						|
 | 
						|
extend type Query {
 | 
						|
  system: SystemQuery
 | 
						|
}
 | 
						|
 | 
						|
extend type Mutation {
 | 
						|
  system: SystemMutation
 | 
						|
}
 | 
						|
 | 
						|
# -----------------------------------------------
 | 
						|
# QUERIES
 | 
						|
# -----------------------------------------------
 | 
						|
 | 
						|
type SystemQuery {
 | 
						|
  flags: [SystemFlag] @auth(requires: ["manage:system"])
 | 
						|
  info: SystemInfo
 | 
						|
  extensions: [SystemExtension] @auth(requires: ["manage:system"])
 | 
						|
  exportStatus: SystemExportStatus @auth(requires: ["manage:system"])
 | 
						|
}
 | 
						|
 | 
						|
# -----------------------------------------------
 | 
						|
# MUTATIONS
 | 
						|
# -----------------------------------------------
 | 
						|
 | 
						|
type SystemMutation {
 | 
						|
  updateFlags(
 | 
						|
    flags: [SystemFlagInput]!
 | 
						|
  ): DefaultResponse @auth(requires: ["manage:system"])
 | 
						|
 | 
						|
  resetTelemetryClientId: DefaultResponse @auth(requires: ["manage:system"])
 | 
						|
 | 
						|
  setTelemetry(
 | 
						|
    enabled: Boolean!
 | 
						|
  ): DefaultResponse @auth(requires: ["manage:system"])
 | 
						|
 | 
						|
  performUpgrade: DefaultResponse @auth(requires: ["manage:system"])
 | 
						|
 | 
						|
  importUsersFromV1(
 | 
						|
    mongoDbConnString: String!
 | 
						|
    groupMode: SystemImportUsersGroupMode!
 | 
						|
  ): SystemImportUsersResponse @auth(requires:  ["manage:system"])
 | 
						|
 | 
						|
  setHTTPSRedirection(
 | 
						|
    enabled: Boolean!
 | 
						|
  ): DefaultResponse @auth(requires: ["manage:system"])
 | 
						|
 | 
						|
  renewHTTPSCertificate: DefaultResponse @auth(requires: ["manage:system"])
 | 
						|
 | 
						|
  export(
 | 
						|
    entities: [String]!
 | 
						|
    path: String!
 | 
						|
  ): DefaultResponse @auth(requires: ["manage:system"])
 | 
						|
}
 | 
						|
 | 
						|
# -----------------------------------------------
 | 
						|
# TYPES
 | 
						|
# -----------------------------------------------
 | 
						|
 | 
						|
type SystemFlag {
 | 
						|
  key: String!
 | 
						|
  value: Boolean!
 | 
						|
}
 | 
						|
 | 
						|
input SystemFlagInput {
 | 
						|
  key: String!
 | 
						|
  value: Boolean!
 | 
						|
}
 | 
						|
 | 
						|
type SystemInfo {
 | 
						|
  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"])
 | 
						|
  httpPort: Int @auth(requires: ["manage:system"])
 | 
						|
  httpRedirection: Boolean @auth(requires: ["manage:system"])
 | 
						|
  httpsPort: Int @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"])
 | 
						|
  sslDomain: String @auth(requires: ["manage:system"])
 | 
						|
  sslExpirationDate: Date @auth(requires: ["manage:system"])
 | 
						|
  sslProvider: String @auth(requires: ["manage:system"])
 | 
						|
  sslStatus: String @auth(requires: ["manage:system"])
 | 
						|
  sslSubscriberEmail: String @auth(requires: ["manage:system"])
 | 
						|
  tagsTotal: Int @auth(requires: ["manage:system", "manage:navigation", "manage:pages", "delete:pages"])
 | 
						|
  telemetry: Boolean @auth(requires: ["manage:system"])
 | 
						|
  telemetryClientId: String @auth(requires: ["manage:system"])
 | 
						|
  upgradeCapable: Boolean @auth(requires: ["manage:system"])
 | 
						|
  usersTotal: Int @auth(requires: ["manage:system", "manage:navigation", "manage:groups", "write:groups", "manage:users", "write:users"])
 | 
						|
  workingDirectory: String @auth(requires: ["manage:system"])
 | 
						|
}
 | 
						|
 | 
						|
enum SystemImportUsersGroupMode {
 | 
						|
  MULTI
 | 
						|
  SINGLE
 | 
						|
  NONE
 | 
						|
}
 | 
						|
 | 
						|
type SystemImportUsersResponse {
 | 
						|
  responseResult: ResponseStatus
 | 
						|
  usersCount: Int
 | 
						|
  groupsCount: Int
 | 
						|
  failed: [SystemImportUsersResponseFailed]
 | 
						|
}
 | 
						|
 | 
						|
type SystemImportUsersResponseFailed {
 | 
						|
  provider: String
 | 
						|
  email: String
 | 
						|
  error: String
 | 
						|
}
 | 
						|
 | 
						|
type SystemExtension {
 | 
						|
  key: String!
 | 
						|
  title: String!
 | 
						|
  description: String!
 | 
						|
  isInstalled: Boolean!
 | 
						|
  isCompatible: Boolean!
 | 
						|
}
 | 
						|
 | 
						|
type SystemExportStatus {
 | 
						|
  status: String
 | 
						|
  progress: Int
 | 
						|
  message: String
 | 
						|
  startedAt: Date
 | 
						|
}
 |