You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wiki/server/graph/schemas/system.graphql

217 lines
3.9 KiB

# ===============================================
# SYSTEM
# ===============================================
extend type Query {
systemExtensions: [SystemExtension]
systemFlags: [SystemFlag]
systemInfo: SystemInfo
systemInstances: [SystemInstance]
systemSecurity: SystemSecurity
systemJobs(
states: [SystemJobState]
): [SystemJob]
systemJobsScheduled: [SystemJobScheduled]
systemJobsUpcoming: [SystemJobUpcoming]
}
extend type Mutation {
cancelJob(
id: UUID!
): DefaultResponse
disconnectWS: DefaultResponse
installExtension(
key: String!
): DefaultResponse
retryJob(
id: UUID!
): DefaultResponse
updateSystemFlags(
flags: [SystemFlagInput]!
): DefaultResponse
updateSystemSecurity(
authJwtAudience: String
authJwtExpiration: String
authJwtRenewablePeriod: String
corsConfig: String
corsMode: SystemSecurityCorsMode
cspDirectives: String
disallowFloc: Boolean
disallowIframe: Boolean
disallowOpenRedirect: Boolean
enforceCsp: Boolean
enforceHsts: Boolean
enforceSameOriginReferrerPolicy: Boolean
forceAssetDownload: Boolean
hstsDuration: Int
trustProxy: Boolean
uploadMaxFiles: Int
uploadMaxFileSize: Int
uploadScanSVG: Boolean
): DefaultResponse
}
# -----------------------------------------------
# TYPES
# -----------------------------------------------
type SystemFlag {
key: String
value: Boolean
}
input SystemFlagInput {
key: String!
value: Boolean!
}
type SystemInfo {
configFile: String
cpuCores: Int
currentVersion: String
dbHost: String
dbType: String
dbVersion: String
groupsTotal: Int
hostname: String
httpPort: Int
httpRedirection: Boolean
httpsPort: Int
isMailConfigured: Boolean
isSchedulerHealthy: Boolean
latestVersion: String
latestVersionReleaseDate: Date
nodeVersion: String
operatingSystem: String
pagesTotal: Int
platform: String
ramTotal: String
sslDomain: String
sslExpirationDate: Date
sslProvider: String
sslStatus: String
sslSubscriberEmail: String
tagsTotal: Int
upgradeCapable: Boolean
usersTotal: Int
workingDirectory: String
}
type SystemInstance {
id: String
activeConnections: Int
activeListeners: Int
dbUser: String
dbFirstSeen: Date
dbLastSeen: Date
ip: String
}
enum SystemImportUsersGroupMode {
MULTI
SINGLE
NONE
}
type SystemImportUsersResponse {
operation: Operation
usersCount: Int
groupsCount: Int
failed: [SystemImportUsersResponseFailed]
}
type SystemImportUsersResponseFailed {
provider: String
email: String
error: String
}
type SystemExtension {
key: String
title: String
description: String
isInstalled: Boolean
isInstallable: Boolean
isCompatible: Boolean
}
type SystemSecurity {
authJwtAudience: String
authJwtExpiration: String
authJwtRenewablePeriod: String
corsConfig: String
corsMode: SystemSecurityCorsMode
cspDirectives: String
disallowFloc: Boolean
disallowIframe: Boolean
disallowOpenRedirect: Boolean
enforceCsp: Boolean
enforceHsts: Boolean
enforceSameOriginReferrerPolicy: Boolean
forceAssetDownload: Boolean
hstsDuration: Int
trustProxy: Boolean
uploadMaxFiles: Int
uploadMaxFileSize: Int
uploadScanSVG: Boolean
}
enum SystemSecurityCorsMode {
OFF
REFLECT
HOSTNAMES
REGEX
}
type SystemJob {
id: UUID
task: String
state: SystemJobState
useWorker: Boolean
wasScheduled: Boolean
payload: JSON
attempt: Int
maxRetries: Int
lastErrorMessage: String
executedBy: String
createdAt: Date
startedAt: Date
completedAt: Date
}
type SystemJobScheduled {
id: UUID
task: String
cron: String
type: String
payload: JSON
createdAt: Date
updatedAt: Date
}
type SystemJobUpcoming {
id: UUID
task: String
useWorker: Boolean
payload: JSON
retries: Int
maxRetries: Int
waitUntil: Date
isScheduled: Boolean
createdBy: String
createdAt: Date
updatedAt: Date
}
enum SystemJobState {
ACTIVE
COMPLETED
FAILED
INTERRUPTED
}