# =============================================== # SYSTEM # =============================================== extend type Query { systemExtensions: [SystemExtension] systemFlags: [SystemFlag] systemInfo: SystemInfo systemSecurity: SystemSecurity } extend type Mutation { 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 installExtension( key: String! ): 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 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 telemetry: Boolean telemetryClientId: String upgradeCapable: Boolean usersTotal: Int workingDirectory: 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 }