site.graphql 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. # ===============================================
  2. # SITES
  3. # ===============================================
  4. extend type Query {
  5. sites: [Site]
  6. siteById (
  7. id: UUID!
  8. ): Site
  9. siteByHostname (
  10. hostname: String!
  11. exact: Boolean!
  12. ): Site
  13. }
  14. extend type Mutation {
  15. createSite (
  16. hostname: String!
  17. title: String!
  18. ): SiteCreateResponse
  19. updateSite (
  20. id: UUID!
  21. patch: SiteUpdateInput!
  22. ): DefaultResponse
  23. uploadSiteLogo (
  24. id: UUID!
  25. image: Upload!
  26. ): DefaultResponse
  27. uploadSiteFavicon (
  28. id: UUID!
  29. image: Upload!
  30. ): DefaultResponse
  31. uploadSiteLoginBg (
  32. id: UUID!
  33. image: Upload!
  34. ): DefaultResponse
  35. deleteSite (
  36. id: UUID!
  37. ): DefaultResponse
  38. }
  39. # -----------------------------------------------
  40. # TYPES
  41. # -----------------------------------------------
  42. type Site {
  43. id: UUID
  44. hostname: String
  45. isEnabled: Boolean
  46. title: String
  47. description: String
  48. company: String
  49. contentLicense: String
  50. footerExtra: String
  51. pageExtensions: String
  52. logoText: Boolean
  53. sitemap: Boolean
  54. robots: SiteRobots
  55. features: SiteFeatures
  56. defaults: SiteDefaults
  57. uploads: SiteUploads
  58. locale: String
  59. localeNamespaces: [String]
  60. localeNamespacing: Boolean
  61. editors: SiteEditors
  62. theme: SiteTheme
  63. }
  64. type SiteRobots {
  65. index: Boolean
  66. follow: Boolean
  67. }
  68. type SiteFeatures {
  69. ratings: Boolean
  70. ratingsMode: SitePageRatingMode
  71. comments: Boolean
  72. contributions: Boolean
  73. profile: Boolean
  74. reasonForChange: SiteReasonForChangeMode
  75. search: Boolean
  76. }
  77. type SiteDefaults {
  78. timezone: String
  79. dateFormat: String
  80. timeFormat: String
  81. tocDepth: PageTocDepth
  82. }
  83. type SiteUploads {
  84. conflictBehavior: SiteUploadConflictBehavior
  85. normalizeFilename: Boolean
  86. }
  87. type SiteLocale {
  88. locale: String
  89. autoUpdate: Boolean
  90. namespacing: Boolean
  91. namespaces: [String]
  92. }
  93. type SiteEditors {
  94. asciidoc: SiteEditor
  95. markdown: SiteEditor
  96. wysiwyg: SiteEditor
  97. }
  98. type SiteEditor {
  99. isActive: Boolean
  100. config: JSON
  101. }
  102. type SiteTheme {
  103. dark: Boolean
  104. colorPrimary: String
  105. colorSecondary: String
  106. colorAccent: String
  107. colorHeader: String
  108. colorSidebar: String
  109. injectCSS: String
  110. injectHead: String
  111. injectBody: String
  112. contentWidth: SiteThemeWidth
  113. sidebarPosition: SiteThemePosition
  114. tocPosition: SiteThemePosition
  115. showSharingMenu: Boolean
  116. showPrintBtn: Boolean
  117. baseFont: String
  118. contentFont: String
  119. }
  120. enum SiteThemeWidth {
  121. full
  122. centered
  123. }
  124. enum SiteThemePosition {
  125. off
  126. left
  127. right
  128. }
  129. enum SitePageRatingMode {
  130. off
  131. thumbs
  132. stars
  133. }
  134. enum SiteReasonForChangeMode {
  135. off
  136. optional
  137. required
  138. }
  139. enum SiteUploadConflictBehavior {
  140. overwrite
  141. reject
  142. new
  143. }
  144. type SiteCreateResponse {
  145. operation: Operation
  146. site: Site
  147. }
  148. input SiteUpdateInput {
  149. hostname: String
  150. isEnabled: Boolean
  151. title: String
  152. description: String
  153. company: String
  154. contentLicense: String
  155. footerExtra: String
  156. pageExtensions: String
  157. logoText: Boolean
  158. sitemap: Boolean
  159. robots: SiteRobotsInput
  160. features: SiteFeaturesInput
  161. defaults: SiteDefaultsInput
  162. uploads: SiteUploadsInput
  163. editors: SiteEditorsInput
  164. theme: SiteThemeInput
  165. }
  166. input SiteRobotsInput {
  167. index: Boolean
  168. follow: Boolean
  169. }
  170. input SiteFeaturesInput {
  171. ratings: Boolean
  172. ratingsMode: SitePageRatingMode
  173. comments: Boolean
  174. contributions: Boolean
  175. profile: Boolean
  176. reasonForChange: SiteReasonForChangeMode
  177. search: Boolean
  178. }
  179. input SiteDefaultsInput {
  180. timezone: String
  181. dateFormat: String
  182. timeFormat: String
  183. tocDepth: PageTocDepthInput
  184. }
  185. input SiteThemeInput {
  186. dark: Boolean
  187. colorPrimary: String
  188. colorSecondary: String
  189. colorAccent: String
  190. colorHeader: String
  191. colorSidebar: String
  192. injectCSS: String
  193. injectHead: String
  194. injectBody: String
  195. contentWidth: SiteThemeWidth
  196. sidebarPosition: SiteThemePosition
  197. tocPosition: SiteThemePosition
  198. showSharingMenu: Boolean
  199. showPrintBtn: Boolean
  200. baseFont: String
  201. contentFont: String
  202. }
  203. input SiteEditorsInput {
  204. asciidoc: SiteEditorInput
  205. markdown: SiteEditorInput
  206. wysiwyg: SiteEditorInput
  207. }
  208. input SiteEditorInput {
  209. isActive: Boolean
  210. config: JSON
  211. }
  212. input SiteUploadsInput {
  213. conflictBehavior: SiteUploadConflictBehavior
  214. normalizeFilename: Boolean
  215. }