123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- # ===============================================
- # SITES
- # ===============================================
- extend type Query {
- sites: [Site] @auth(requires: ["manage:system"])
- siteById (
- id: UUID!
- ): Site @auth(requires: ["manage:system"])
- siteByHostname (
- hostname: String!
- exact: Boolean!
- ): Site @auth(requires: ["manage:system"])
- # Legacy
- site: SiteQuery
- }
- extend type Mutation {
- createSite (
- hostname: String!
- title: String!
- ): SiteCreateResponse @auth(requires: ["manage:system"])
- updateSite (
- id: UUID!
- patch: SiteUpdateInput!
- ): DefaultResponse @auth(requires: ["manage:system"])
- uploadSiteLogo (
- id: UUID!
- image: Upload!
- ): DefaultResponse @auth(requires: ["manage:system"])
- uploadSiteFavicon (
- id: UUID!
- image: Upload!
- ): DefaultResponse @auth(requires: ["manage:system"])
- deleteSite (
- id: UUID!
- ): DefaultResponse @auth(requires: ["manage:system"])
- # Legacy
- site: SiteMutation
- }
- # -----------------------------------------------
- # QUERIES
- # -----------------------------------------------
- type SiteQuery {
- config: SiteConfig @auth(requires: ["manage:system"])
- }
- # -----------------------------------------------
- # MUTATIONS
- # -----------------------------------------------
- type SiteMutation {
- updateConfig(
- host: String
- title: String
- description: String
- robots: [String]
- analyticsService: String
- analyticsId: String
- company: String
- contentLicense: String
- logoUrl: String
- authAutoLogin: Boolean
- authEnforce2FA: Boolean
- authHideLocal: Boolean
- authLoginBgUrl: String
- authJwtAudience: String
- authJwtExpiration: String
- authJwtRenewablePeriod: String
- featurePageRatings: Boolean
- featurePageComments: Boolean
- featurePersonalWikis: Boolean
- securityOpenRedirect: Boolean
- securityIframe: Boolean
- securityReferrerPolicy: Boolean
- securityTrustProxy: Boolean
- securitySRI: Boolean
- securityHSTS: Boolean
- securityHSTSDuration: Int
- securityCSP: Boolean
- securityCSPDirectives: String
- uploadMaxFileSize: Int
- uploadMaxFiles: Int
- uploadScanSVG: Boolean
- uploadForceDownload: Boolean
- ): DefaultResponse @auth(requires: ["manage:system"])
- }
- # -----------------------------------------------
- # TYPES
- # -----------------------------------------------
- type Site {
- id: UUID
- hostname: String
- isEnabled: Boolean
- title: String
- description: String
- company: String
- contentLicense: String
- logoText: Boolean
- robots: SiteRobots
- features: SiteFeatures
- defaults: SiteDefaults
- locale: String
- localeNamespaces: [String]
- localeNamespacing: Boolean
- theme: SiteTheme
- }
- type SiteRobots {
- index: Boolean
- follow: Boolean
- }
- type SiteFeatures {
- ratings: Boolean
- ratingsMode: SitePageRatingModes
- comments: Boolean
- contributions: Boolean
- profile: Boolean
- search: Boolean
- }
- type SiteDefaults {
- timezone: String
- dateFormat: String
- timeFormat: String
- }
- type SiteLocale {
- locale: String
- autoUpdate: Boolean
- namespacing: Boolean
- namespaces: [String]
- }
- type SiteTheme {
- dark: Boolean
- colorPrimary: String
- colorSecondary: String
- colorAccent: String
- colorHeader: String
- colorSidebar: String
- injectCSS: String
- injectHead: String
- injectBody: String
- sidebarPosition: SiteThemePosition
- tocPosition: SiteThemePosition
- showSharingMenu: Boolean
- showPrintBtn: Boolean
- }
- enum SiteThemePosition {
- left
- right
- }
- enum SitePageRatingModes {
- off
- thumbs
- stars
- }
- type SiteCreateResponse {
- status: ResponseStatus
- site: Site
- }
- input SiteUpdateInput {
- hostname: String
- isEnabled: Boolean
- title: String
- description: String
- company: String
- contentLicense: String
- logoText: Boolean
- robots: SiteRobotsInput
- features: SiteFeaturesInput
- defaults: SiteDefaultsInput
- theme: SiteThemeInput
- }
- input SiteRobotsInput {
- index: Boolean
- follow: Boolean
- }
- input SiteFeaturesInput {
- ratings: Boolean
- ratingsMode: SitePageRatingModes
- comments: Boolean
- contributions: Boolean
- profile: Boolean
- search: Boolean
- }
- input SiteDefaultsInput {
- timezone: String
- dateFormat: String
- timeFormat: String
- }
- input SiteThemeInput {
- dark: Boolean
- colorPrimary: String
- colorSecondary: String
- colorAccent: String
- colorHeader: String
- colorSidebar: String
- injectCSS: String
- injectHead: String
- injectBody: String
- sidebarPosition: SiteThemePosition
- tocPosition: SiteThemePosition
- showSharingMenu: Boolean
- showPrintBtn: Boolean
- }
- # LEGACY
- type SiteConfig {
- host: String
- title: String
- description: String
- robots: [String]
- analyticsService: String
- analyticsId: String
- company: String
- contentLicense: String
- logoUrl: String
- authAutoLogin: Boolean
- authEnforce2FA: Boolean
- authHideLocal: Boolean
- authLoginBgUrl: String
- authJwtAudience: String
- authJwtExpiration: String
- authJwtRenewablePeriod: String
- featurePageRatings: Boolean
- featurePageComments: Boolean
- featurePersonalWikis: Boolean
- securityOpenRedirect: Boolean
- securityIframe: Boolean
- securityReferrerPolicy: Boolean
- securityTrustProxy: Boolean
- securitySRI: Boolean
- securityHSTS: Boolean
- securityHSTSDuration: Int
- securityCSP: Boolean
- securityCSPDirectives: String
- uploadMaxFileSize: Int
- uploadMaxFiles: Int
- uploadScanSVG: Boolean
- uploadForceDownload: Boolean
- }
|