# =============================================== # SYSTEM # =============================================== extend type Query { system: SystemQuery } extend type Mutation { system: SystemMutation } # ----------------------------------------------- # QUERIES # ----------------------------------------------- type SystemQuery { flags: [SystemFlag] @auth(requires: ["manage:system"]) info: SystemInfo } # ----------------------------------------------- # 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"]) } # ----------------------------------------------- # 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 }