@jahia/agentic 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/README.md +48 -0
  2. package/dist/claude/.claude/rules/jahia.md +76 -0
  3. package/dist/claude/.claude/skills/jahia/SKILL.md +136 -0
  4. package/dist/claude/.claude/skills/jahia-content/SKILL.md +139 -0
  5. package/dist/claude/.claude/skills/jahia-content-create-content/SKILL.md +384 -0
  6. package/dist/claude/.claude/skills/jahia-content-explore-structure/SKILL.md +164 -0
  7. package/dist/claude/.claude/skills/jahia-content-move-content/SKILL.md +236 -0
  8. package/dist/claude/.claude/skills/jahia-content-query-content/SKILL.md +144 -0
  9. package/dist/claude/.claude/skills/jahia-content-translate-content/SKILL.md +297 -0
  10. package/dist/claude/.claude/skills/jahia-dev/SKILL.md +124 -0
  11. package/dist/claude/.claude/skills/jahia-dev-accessibility/SKILL.md +271 -0
  12. package/dist/claude/.claude/skills/jahia-dev-apis/SKILL.md +52 -0
  13. package/dist/claude/.claude/skills/jahia-dev-apis/references/authentication.md +484 -0
  14. package/dist/claude/.claude/skills/jahia-dev-apis/references/graphql.md +657 -0
  15. package/dist/claude/.claude/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  16. package/dist/claude/.claude/skills/jahia-dev-apis/references/security.md +541 -0
  17. package/dist/claude/.claude/skills/jahia-dev-build-component/SKILL.md +140 -0
  18. package/dist/claude/.claude/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  19. package/dist/claude/.claude/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  20. package/dist/claude/.claude/skills/jahia-dev-create-view/SKILL.md +838 -0
  21. package/dist/claude/.claude/skills/jahia-dev-cypress/SKILL.md +445 -0
  22. package/dist/claude/.claude/skills/jahia-dev-debug/SKILL.md +176 -0
  23. package/dist/claude/.claude/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  24. package/dist/claude/.claude/skills/jahia-dev-import-from/SKILL.md +244 -0
  25. package/dist/claude/.claude/skills/jahia-dev-java/SKILL.md +105 -0
  26. package/dist/claude/.claude/skills/jahia-dev-java/references/backend.md +331 -0
  27. package/dist/claude/.claude/skills/jahia-dev-java/references/content-types.md +273 -0
  28. package/dist/claude/.claude/skills/jahia-dev-java/references/modules.md +218 -0
  29. package/dist/claude/.claude/skills/jahia-dev-java/references/osgi.md +208 -0
  30. package/dist/claude/.claude/skills/jahia-dev-java/references/rendering.md +191 -0
  31. package/dist/claude/.claude/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  32. package/dist/claude/.claude/skills/jahia-dev-jexperience/SKILL.md +269 -0
  33. package/dist/claude/.claude/skills/jahia-dev-ops/SKILL.md +50 -0
  34. package/dist/claude/.claude/skills/jahia-dev-ops/references/docker.md +151 -0
  35. package/dist/claude/.claude/skills/jahia-dev-ops/references/monitoring.md +195 -0
  36. package/dist/claude/.claude/skills/jahia-dev-ops/references/provisioning.md +269 -0
  37. package/dist/claude/.claude/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  38. package/dist/claude/.claude/skills/jahia-dev-properties/SKILL.md +147 -0
  39. package/dist/claude/.claude/skills/jahia-dev-properties/references/all-properties.md +231 -0
  40. package/dist/claude/.claude/skills/jahia-dev-query-content/SKILL.md +407 -0
  41. package/dist/claude/.claude/skills/jahia-dev-review/SKILL.md +228 -0
  42. package/dist/claude/.claude/skills/jahia-dev-screenshot/SKILL.md +177 -0
  43. package/dist/claude/.claude/skills/jahia-dev-start-local/SKILL.md +129 -0
  44. package/dist/claude/.claude/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  45. package/dist/claude/CLAUDE.md +90 -0
  46. package/dist/codex/.agents/skills/jahia/SKILL.md +136 -0
  47. package/dist/codex/.agents/skills/jahia-content/SKILL.md +139 -0
  48. package/dist/codex/.agents/skills/jahia-content-create-content/SKILL.md +384 -0
  49. package/dist/codex/.agents/skills/jahia-content-explore-structure/SKILL.md +164 -0
  50. package/dist/codex/.agents/skills/jahia-content-move-content/SKILL.md +236 -0
  51. package/dist/codex/.agents/skills/jahia-content-query-content/SKILL.md +144 -0
  52. package/dist/codex/.agents/skills/jahia-content-translate-content/SKILL.md +297 -0
  53. package/dist/codex/.agents/skills/jahia-dev/SKILL.md +124 -0
  54. package/dist/codex/.agents/skills/jahia-dev-accessibility/SKILL.md +271 -0
  55. package/dist/codex/.agents/skills/jahia-dev-apis/SKILL.md +52 -0
  56. package/dist/codex/.agents/skills/jahia-dev-apis/references/authentication.md +484 -0
  57. package/dist/codex/.agents/skills/jahia-dev-apis/references/graphql.md +657 -0
  58. package/dist/codex/.agents/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  59. package/dist/codex/.agents/skills/jahia-dev-apis/references/security.md +541 -0
  60. package/dist/codex/.agents/skills/jahia-dev-build-component/SKILL.md +140 -0
  61. package/dist/codex/.agents/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  62. package/dist/codex/.agents/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  63. package/dist/codex/.agents/skills/jahia-dev-create-view/SKILL.md +838 -0
  64. package/dist/codex/.agents/skills/jahia-dev-cypress/SKILL.md +445 -0
  65. package/dist/codex/.agents/skills/jahia-dev-debug/SKILL.md +176 -0
  66. package/dist/codex/.agents/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  67. package/dist/codex/.agents/skills/jahia-dev-import-from/SKILL.md +244 -0
  68. package/dist/codex/.agents/skills/jahia-dev-java/SKILL.md +105 -0
  69. package/dist/codex/.agents/skills/jahia-dev-java/references/backend.md +331 -0
  70. package/dist/codex/.agents/skills/jahia-dev-java/references/content-types.md +273 -0
  71. package/dist/codex/.agents/skills/jahia-dev-java/references/modules.md +218 -0
  72. package/dist/codex/.agents/skills/jahia-dev-java/references/osgi.md +208 -0
  73. package/dist/codex/.agents/skills/jahia-dev-java/references/rendering.md +191 -0
  74. package/dist/codex/.agents/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  75. package/dist/codex/.agents/skills/jahia-dev-jexperience/SKILL.md +269 -0
  76. package/dist/codex/.agents/skills/jahia-dev-ops/SKILL.md +50 -0
  77. package/dist/codex/.agents/skills/jahia-dev-ops/references/docker.md +151 -0
  78. package/dist/codex/.agents/skills/jahia-dev-ops/references/monitoring.md +195 -0
  79. package/dist/codex/.agents/skills/jahia-dev-ops/references/provisioning.md +269 -0
  80. package/dist/codex/.agents/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  81. package/dist/codex/.agents/skills/jahia-dev-properties/SKILL.md +147 -0
  82. package/dist/codex/.agents/skills/jahia-dev-properties/references/all-properties.md +231 -0
  83. package/dist/codex/.agents/skills/jahia-dev-query-content/SKILL.md +407 -0
  84. package/dist/codex/.agents/skills/jahia-dev-review/SKILL.md +228 -0
  85. package/dist/codex/.agents/skills/jahia-dev-screenshot/SKILL.md +177 -0
  86. package/dist/codex/.agents/skills/jahia-dev-start-local/SKILL.md +129 -0
  87. package/dist/codex/.agents/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  88. package/dist/codex/AGENTS.md +89 -0
  89. package/dist/copilot/.agents/skills/jahia/SKILL.md +136 -0
  90. package/dist/copilot/.agents/skills/jahia-content/SKILL.md +139 -0
  91. package/dist/copilot/.agents/skills/jahia-content-create-content/SKILL.md +384 -0
  92. package/dist/copilot/.agents/skills/jahia-content-explore-structure/SKILL.md +164 -0
  93. package/dist/copilot/.agents/skills/jahia-content-move-content/SKILL.md +236 -0
  94. package/dist/copilot/.agents/skills/jahia-content-query-content/SKILL.md +144 -0
  95. package/dist/copilot/.agents/skills/jahia-content-translate-content/SKILL.md +297 -0
  96. package/dist/copilot/.agents/skills/jahia-dev/SKILL.md +124 -0
  97. package/dist/copilot/.agents/skills/jahia-dev-accessibility/SKILL.md +271 -0
  98. package/dist/copilot/.agents/skills/jahia-dev-apis/SKILL.md +52 -0
  99. package/dist/copilot/.agents/skills/jahia-dev-apis/references/authentication.md +484 -0
  100. package/dist/copilot/.agents/skills/jahia-dev-apis/references/graphql.md +657 -0
  101. package/dist/copilot/.agents/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  102. package/dist/copilot/.agents/skills/jahia-dev-apis/references/security.md +541 -0
  103. package/dist/copilot/.agents/skills/jahia-dev-build-component/SKILL.md +140 -0
  104. package/dist/copilot/.agents/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  105. package/dist/copilot/.agents/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  106. package/dist/copilot/.agents/skills/jahia-dev-create-view/SKILL.md +838 -0
  107. package/dist/copilot/.agents/skills/jahia-dev-cypress/SKILL.md +445 -0
  108. package/dist/copilot/.agents/skills/jahia-dev-debug/SKILL.md +176 -0
  109. package/dist/copilot/.agents/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  110. package/dist/copilot/.agents/skills/jahia-dev-import-from/SKILL.md +244 -0
  111. package/dist/copilot/.agents/skills/jahia-dev-java/SKILL.md +105 -0
  112. package/dist/copilot/.agents/skills/jahia-dev-java/references/backend.md +331 -0
  113. package/dist/copilot/.agents/skills/jahia-dev-java/references/content-types.md +273 -0
  114. package/dist/copilot/.agents/skills/jahia-dev-java/references/modules.md +218 -0
  115. package/dist/copilot/.agents/skills/jahia-dev-java/references/osgi.md +208 -0
  116. package/dist/copilot/.agents/skills/jahia-dev-java/references/rendering.md +191 -0
  117. package/dist/copilot/.agents/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  118. package/dist/copilot/.agents/skills/jahia-dev-jexperience/SKILL.md +269 -0
  119. package/dist/copilot/.agents/skills/jahia-dev-ops/SKILL.md +50 -0
  120. package/dist/copilot/.agents/skills/jahia-dev-ops/references/docker.md +151 -0
  121. package/dist/copilot/.agents/skills/jahia-dev-ops/references/monitoring.md +195 -0
  122. package/dist/copilot/.agents/skills/jahia-dev-ops/references/provisioning.md +269 -0
  123. package/dist/copilot/.agents/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  124. package/dist/copilot/.agents/skills/jahia-dev-properties/SKILL.md +147 -0
  125. package/dist/copilot/.agents/skills/jahia-dev-properties/references/all-properties.md +231 -0
  126. package/dist/copilot/.agents/skills/jahia-dev-query-content/SKILL.md +407 -0
  127. package/dist/copilot/.agents/skills/jahia-dev-review/SKILL.md +228 -0
  128. package/dist/copilot/.agents/skills/jahia-dev-screenshot/SKILL.md +177 -0
  129. package/dist/copilot/.agents/skills/jahia-dev-start-local/SKILL.md +129 -0
  130. package/dist/copilot/.agents/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  131. package/dist/copilot/AGENTS.md +89 -0
  132. package/dist/cursor/.agents/skills/jahia/SKILL.md +136 -0
  133. package/dist/cursor/.agents/skills/jahia-content/SKILL.md +139 -0
  134. package/dist/cursor/.agents/skills/jahia-content-create-content/SKILL.md +384 -0
  135. package/dist/cursor/.agents/skills/jahia-content-explore-structure/SKILL.md +164 -0
  136. package/dist/cursor/.agents/skills/jahia-content-move-content/SKILL.md +236 -0
  137. package/dist/cursor/.agents/skills/jahia-content-query-content/SKILL.md +144 -0
  138. package/dist/cursor/.agents/skills/jahia-content-translate-content/SKILL.md +297 -0
  139. package/dist/cursor/.agents/skills/jahia-dev/SKILL.md +124 -0
  140. package/dist/cursor/.agents/skills/jahia-dev-accessibility/SKILL.md +271 -0
  141. package/dist/cursor/.agents/skills/jahia-dev-apis/SKILL.md +52 -0
  142. package/dist/cursor/.agents/skills/jahia-dev-apis/references/authentication.md +484 -0
  143. package/dist/cursor/.agents/skills/jahia-dev-apis/references/graphql.md +657 -0
  144. package/dist/cursor/.agents/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  145. package/dist/cursor/.agents/skills/jahia-dev-apis/references/security.md +541 -0
  146. package/dist/cursor/.agents/skills/jahia-dev-build-component/SKILL.md +140 -0
  147. package/dist/cursor/.agents/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  148. package/dist/cursor/.agents/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  149. package/dist/cursor/.agents/skills/jahia-dev-create-view/SKILL.md +838 -0
  150. package/dist/cursor/.agents/skills/jahia-dev-cypress/SKILL.md +445 -0
  151. package/dist/cursor/.agents/skills/jahia-dev-debug/SKILL.md +176 -0
  152. package/dist/cursor/.agents/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  153. package/dist/cursor/.agents/skills/jahia-dev-import-from/SKILL.md +244 -0
  154. package/dist/cursor/.agents/skills/jahia-dev-java/SKILL.md +105 -0
  155. package/dist/cursor/.agents/skills/jahia-dev-java/references/backend.md +331 -0
  156. package/dist/cursor/.agents/skills/jahia-dev-java/references/content-types.md +273 -0
  157. package/dist/cursor/.agents/skills/jahia-dev-java/references/modules.md +218 -0
  158. package/dist/cursor/.agents/skills/jahia-dev-java/references/osgi.md +208 -0
  159. package/dist/cursor/.agents/skills/jahia-dev-java/references/rendering.md +191 -0
  160. package/dist/cursor/.agents/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  161. package/dist/cursor/.agents/skills/jahia-dev-jexperience/SKILL.md +269 -0
  162. package/dist/cursor/.agents/skills/jahia-dev-ops/SKILL.md +50 -0
  163. package/dist/cursor/.agents/skills/jahia-dev-ops/references/docker.md +151 -0
  164. package/dist/cursor/.agents/skills/jahia-dev-ops/references/monitoring.md +195 -0
  165. package/dist/cursor/.agents/skills/jahia-dev-ops/references/provisioning.md +269 -0
  166. package/dist/cursor/.agents/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  167. package/dist/cursor/.agents/skills/jahia-dev-properties/SKILL.md +147 -0
  168. package/dist/cursor/.agents/skills/jahia-dev-properties/references/all-properties.md +231 -0
  169. package/dist/cursor/.agents/skills/jahia-dev-query-content/SKILL.md +407 -0
  170. package/dist/cursor/.agents/skills/jahia-dev-review/SKILL.md +228 -0
  171. package/dist/cursor/.agents/skills/jahia-dev-screenshot/SKILL.md +177 -0
  172. package/dist/cursor/.agents/skills/jahia-dev-start-local/SKILL.md +129 -0
  173. package/dist/cursor/.agents/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  174. package/dist/cursor/.cursor/rules/jahia.mdc +80 -0
  175. package/dist/gemini/.agents/skills/jahia/SKILL.md +136 -0
  176. package/dist/gemini/.agents/skills/jahia-content/SKILL.md +139 -0
  177. package/dist/gemini/.agents/skills/jahia-content-create-content/SKILL.md +384 -0
  178. package/dist/gemini/.agents/skills/jahia-content-explore-structure/SKILL.md +164 -0
  179. package/dist/gemini/.agents/skills/jahia-content-move-content/SKILL.md +236 -0
  180. package/dist/gemini/.agents/skills/jahia-content-query-content/SKILL.md +144 -0
  181. package/dist/gemini/.agents/skills/jahia-content-translate-content/SKILL.md +297 -0
  182. package/dist/gemini/.agents/skills/jahia-dev/SKILL.md +124 -0
  183. package/dist/gemini/.agents/skills/jahia-dev-accessibility/SKILL.md +271 -0
  184. package/dist/gemini/.agents/skills/jahia-dev-apis/SKILL.md +52 -0
  185. package/dist/gemini/.agents/skills/jahia-dev-apis/references/authentication.md +484 -0
  186. package/dist/gemini/.agents/skills/jahia-dev-apis/references/graphql.md +657 -0
  187. package/dist/gemini/.agents/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  188. package/dist/gemini/.agents/skills/jahia-dev-apis/references/security.md +541 -0
  189. package/dist/gemini/.agents/skills/jahia-dev-build-component/SKILL.md +140 -0
  190. package/dist/gemini/.agents/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  191. package/dist/gemini/.agents/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  192. package/dist/gemini/.agents/skills/jahia-dev-create-view/SKILL.md +838 -0
  193. package/dist/gemini/.agents/skills/jahia-dev-cypress/SKILL.md +445 -0
  194. package/dist/gemini/.agents/skills/jahia-dev-debug/SKILL.md +176 -0
  195. package/dist/gemini/.agents/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  196. package/dist/gemini/.agents/skills/jahia-dev-import-from/SKILL.md +244 -0
  197. package/dist/gemini/.agents/skills/jahia-dev-java/SKILL.md +105 -0
  198. package/dist/gemini/.agents/skills/jahia-dev-java/references/backend.md +331 -0
  199. package/dist/gemini/.agents/skills/jahia-dev-java/references/content-types.md +273 -0
  200. package/dist/gemini/.agents/skills/jahia-dev-java/references/modules.md +218 -0
  201. package/dist/gemini/.agents/skills/jahia-dev-java/references/osgi.md +208 -0
  202. package/dist/gemini/.agents/skills/jahia-dev-java/references/rendering.md +191 -0
  203. package/dist/gemini/.agents/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  204. package/dist/gemini/.agents/skills/jahia-dev-jexperience/SKILL.md +269 -0
  205. package/dist/gemini/.agents/skills/jahia-dev-ops/SKILL.md +50 -0
  206. package/dist/gemini/.agents/skills/jahia-dev-ops/references/docker.md +151 -0
  207. package/dist/gemini/.agents/skills/jahia-dev-ops/references/monitoring.md +195 -0
  208. package/dist/gemini/.agents/skills/jahia-dev-ops/references/provisioning.md +269 -0
  209. package/dist/gemini/.agents/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  210. package/dist/gemini/.agents/skills/jahia-dev-properties/SKILL.md +147 -0
  211. package/dist/gemini/.agents/skills/jahia-dev-properties/references/all-properties.md +231 -0
  212. package/dist/gemini/.agents/skills/jahia-dev-query-content/SKILL.md +407 -0
  213. package/dist/gemini/.agents/skills/jahia-dev-review/SKILL.md +228 -0
  214. package/dist/gemini/.agents/skills/jahia-dev-screenshot/SKILL.md +177 -0
  215. package/dist/gemini/.agents/skills/jahia-dev-start-local/SKILL.md +129 -0
  216. package/dist/gemini/.agents/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  217. package/dist/gemini/AGENTS.md +89 -0
  218. package/dist/gemini/GEMINI.md +6 -0
  219. package/dist/index.js +975 -0
  220. package/dist/opencode/.agents/skills/jahia/SKILL.md +136 -0
  221. package/dist/opencode/.agents/skills/jahia-content/SKILL.md +139 -0
  222. package/dist/opencode/.agents/skills/jahia-content-create-content/SKILL.md +384 -0
  223. package/dist/opencode/.agents/skills/jahia-content-explore-structure/SKILL.md +164 -0
  224. package/dist/opencode/.agents/skills/jahia-content-move-content/SKILL.md +236 -0
  225. package/dist/opencode/.agents/skills/jahia-content-query-content/SKILL.md +144 -0
  226. package/dist/opencode/.agents/skills/jahia-content-translate-content/SKILL.md +297 -0
  227. package/dist/opencode/.agents/skills/jahia-dev/SKILL.md +124 -0
  228. package/dist/opencode/.agents/skills/jahia-dev-accessibility/SKILL.md +271 -0
  229. package/dist/opencode/.agents/skills/jahia-dev-apis/SKILL.md +52 -0
  230. package/dist/opencode/.agents/skills/jahia-dev-apis/references/authentication.md +484 -0
  231. package/dist/opencode/.agents/skills/jahia-dev-apis/references/graphql.md +657 -0
  232. package/dist/opencode/.agents/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  233. package/dist/opencode/.agents/skills/jahia-dev-apis/references/security.md +541 -0
  234. package/dist/opencode/.agents/skills/jahia-dev-build-component/SKILL.md +140 -0
  235. package/dist/opencode/.agents/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  236. package/dist/opencode/.agents/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  237. package/dist/opencode/.agents/skills/jahia-dev-create-view/SKILL.md +838 -0
  238. package/dist/opencode/.agents/skills/jahia-dev-cypress/SKILL.md +445 -0
  239. package/dist/opencode/.agents/skills/jahia-dev-debug/SKILL.md +176 -0
  240. package/dist/opencode/.agents/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  241. package/dist/opencode/.agents/skills/jahia-dev-import-from/SKILL.md +244 -0
  242. package/dist/opencode/.agents/skills/jahia-dev-java/SKILL.md +105 -0
  243. package/dist/opencode/.agents/skills/jahia-dev-java/references/backend.md +331 -0
  244. package/dist/opencode/.agents/skills/jahia-dev-java/references/content-types.md +273 -0
  245. package/dist/opencode/.agents/skills/jahia-dev-java/references/modules.md +218 -0
  246. package/dist/opencode/.agents/skills/jahia-dev-java/references/osgi.md +208 -0
  247. package/dist/opencode/.agents/skills/jahia-dev-java/references/rendering.md +191 -0
  248. package/dist/opencode/.agents/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  249. package/dist/opencode/.agents/skills/jahia-dev-jexperience/SKILL.md +269 -0
  250. package/dist/opencode/.agents/skills/jahia-dev-ops/SKILL.md +50 -0
  251. package/dist/opencode/.agents/skills/jahia-dev-ops/references/docker.md +151 -0
  252. package/dist/opencode/.agents/skills/jahia-dev-ops/references/monitoring.md +195 -0
  253. package/dist/opencode/.agents/skills/jahia-dev-ops/references/provisioning.md +269 -0
  254. package/dist/opencode/.agents/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  255. package/dist/opencode/.agents/skills/jahia-dev-properties/SKILL.md +147 -0
  256. package/dist/opencode/.agents/skills/jahia-dev-properties/references/all-properties.md +231 -0
  257. package/dist/opencode/.agents/skills/jahia-dev-query-content/SKILL.md +407 -0
  258. package/dist/opencode/.agents/skills/jahia-dev-review/SKILL.md +228 -0
  259. package/dist/opencode/.agents/skills/jahia-dev-screenshot/SKILL.md +177 -0
  260. package/dist/opencode/.agents/skills/jahia-dev-start-local/SKILL.md +129 -0
  261. package/dist/opencode/.agents/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  262. package/dist/opencode/AGENTS.md +89 -0
  263. package/dist/windsurf/.windsurf/rules/jahia.md +80 -0
  264. package/dist/windsurf/.windsurf/skills/jahia/SKILL.md +136 -0
  265. package/dist/windsurf/.windsurf/skills/jahia-content/SKILL.md +139 -0
  266. package/dist/windsurf/.windsurf/skills/jahia-content-create-content/SKILL.md +384 -0
  267. package/dist/windsurf/.windsurf/skills/jahia-content-explore-structure/SKILL.md +164 -0
  268. package/dist/windsurf/.windsurf/skills/jahia-content-move-content/SKILL.md +236 -0
  269. package/dist/windsurf/.windsurf/skills/jahia-content-query-content/SKILL.md +144 -0
  270. package/dist/windsurf/.windsurf/skills/jahia-content-translate-content/SKILL.md +297 -0
  271. package/dist/windsurf/.windsurf/skills/jahia-dev/SKILL.md +124 -0
  272. package/dist/windsurf/.windsurf/skills/jahia-dev-accessibility/SKILL.md +271 -0
  273. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/SKILL.md +52 -0
  274. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/authentication.md +484 -0
  275. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/graphql.md +657 -0
  276. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  277. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/security.md +541 -0
  278. package/dist/windsurf/.windsurf/skills/jahia-dev-build-component/SKILL.md +140 -0
  279. package/dist/windsurf/.windsurf/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  280. package/dist/windsurf/.windsurf/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  281. package/dist/windsurf/.windsurf/skills/jahia-dev-create-view/SKILL.md +838 -0
  282. package/dist/windsurf/.windsurf/skills/jahia-dev-cypress/SKILL.md +445 -0
  283. package/dist/windsurf/.windsurf/skills/jahia-dev-debug/SKILL.md +176 -0
  284. package/dist/windsurf/.windsurf/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  285. package/dist/windsurf/.windsurf/skills/jahia-dev-import-from/SKILL.md +244 -0
  286. package/dist/windsurf/.windsurf/skills/jahia-dev-java/SKILL.md +105 -0
  287. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/backend.md +331 -0
  288. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/content-types.md +273 -0
  289. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/modules.md +218 -0
  290. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/osgi.md +208 -0
  291. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/rendering.md +191 -0
  292. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  293. package/dist/windsurf/.windsurf/skills/jahia-dev-jexperience/SKILL.md +269 -0
  294. package/dist/windsurf/.windsurf/skills/jahia-dev-ops/SKILL.md +50 -0
  295. package/dist/windsurf/.windsurf/skills/jahia-dev-ops/references/docker.md +151 -0
  296. package/dist/windsurf/.windsurf/skills/jahia-dev-ops/references/monitoring.md +195 -0
  297. package/dist/windsurf/.windsurf/skills/jahia-dev-ops/references/provisioning.md +269 -0
  298. package/dist/windsurf/.windsurf/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  299. package/dist/windsurf/.windsurf/skills/jahia-dev-properties/SKILL.md +147 -0
  300. package/dist/windsurf/.windsurf/skills/jahia-dev-properties/references/all-properties.md +231 -0
  301. package/dist/windsurf/.windsurf/skills/jahia-dev-query-content/SKILL.md +407 -0
  302. package/dist/windsurf/.windsurf/skills/jahia-dev-review/SKILL.md +228 -0
  303. package/dist/windsurf/.windsurf/skills/jahia-dev-screenshot/SKILL.md +177 -0
  304. package/dist/windsurf/.windsurf/skills/jahia-dev-start-local/SKILL.md +129 -0
  305. package/dist/windsurf/.windsurf/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  306. package/dist/windsurf/AGENTS.md +89 -0
  307. package/package.json +28 -0
@@ -0,0 +1,657 @@
1
+ # Jahia GraphQL API Reference
2
+
3
+ ## Table of contents
4
+ 1. [Endpoint and transport](#endpoint-and-transport)
5
+ 2. [Authentication and authorization](#authentication-and-authorization)
6
+ 3. [Workspaces and internationalization](#workspaces-and-internationalization)
7
+ 4. [JCR queries](#jcr-queries)
8
+ 5. [JCR mutations](#jcr-mutations)
9
+ 6. [Pagination (Connection pattern)](#pagination-connection-pattern)
10
+ 7. [Field filtering and sorting](#field-filtering-and-sorting)
11
+ 8. [Extending the schema — SDL](#extending-the-schema--sdl)
12
+ 9. [Extending the schema — Java](#extending-the-schema--java)
13
+ 10. [Apollo client setup](#apollo-client-setup)
14
+ 11. [CORS and OSGi configuration](#cors-and-osgi-configuration)
15
+ 12. [GraphQL playground](#graphql-playground)
16
+ 13. [Introspection access control](#introspection-access-control)
17
+
18
+ ---
19
+
20
+ ## Endpoint and transport
21
+
22
+ ```
23
+ POST /modules/graphql
24
+ Content-Type: application/json
25
+ Accept: application/json
26
+ Body: { "query": "...", "variables": { ... } }
27
+ ```
28
+
29
+ GraphQL is the preferred API for client-side applications in Jahia 8.2. The implementation is based on `graphql-java` with a JCR extension (`graphql-dxm-provider`).
30
+
31
+ From a view (JSP), you can call it with plain XHR:
32
+
33
+ ```javascript
34
+ var xhr = new XMLHttpRequest();
35
+ xhr.responseType = 'json';
36
+ xhr.open("POST", "/modules/graphql");
37
+ xhr.setRequestHeader("Content-Type", "application/json");
38
+ xhr.setRequestHeader("Accept", "application/json");
39
+ xhr.send(JSON.stringify({ query: '{ jcr { nodeByPath(path: "/sites/mySite") { name } } }' }));
40
+ ```
41
+
42
+ ---
43
+
44
+ ## Authentication and authorization
45
+
46
+ The GraphQL endpoint is **closed by default** to external callers. Access is granted through the security filter module.
47
+
48
+ **For a scoped token (recommended):**
49
+
50
+ 1. Create a scope config in `digital-factory-data/karaf/etc/org.jahia.bundles.api.authorization-myapp.yml`:
51
+
52
+ ```yaml
53
+ myapp:
54
+ description: Access for myapp
55
+ grants:
56
+ - api: graphql
57
+ node:
58
+ pathPattern: /,/sites/mysite(/.*)?
59
+ nodeType: jnt:news,jnt:contentFolder
60
+ ```
61
+
62
+ 2. Pass a personal API token in the `Authorization` header:
63
+
64
+ ```
65
+ Authorization: APIToken <token>
66
+ ```
67
+
68
+ **For same-origin browser requests**, auto-apply the scope:
69
+
70
+ ```yaml
71
+ myapp:
72
+ auto_apply:
73
+ - origin: hosted
74
+ grants:
75
+ - api: graphql
76
+ ```
77
+
78
+ **Field-level permission checks** can be added in `org.jahia.modules.graphql.provider-*.cfg`:
79
+
80
+ ```properties
81
+ # Restrict nodesByQuery to users with graphQLNodesByQueryPermission on root
82
+ permission.JCRQuery.nodesByQuery=graphQLNodesByQueryPermission
83
+ # Restrict to a specific node path
84
+ permission.JCRQuery.nodesByQuery=graphQLNodesByQueryPermission/sites/mySite/content
85
+ ```
86
+
87
+ Or in Java using the annotation `@GraphQLRequiresPermission("<permission>")`.
88
+
89
+ The JCR session is derived from the HTTP session, so standard Jahia node permissions apply automatically.
90
+
91
+ ---
92
+
93
+ ## Workspaces and internationalization
94
+
95
+ Every JCR query or mutation must be wrapped in a `jcr` block specifying the workspace:
96
+
97
+ ```graphql
98
+ {
99
+ jcr(workspace: LIVE) { # LIVE or EDIT (default is EDIT)
100
+ nodeByPath(path: "/sites/digitall/home") {
101
+ displayName(language: "en")
102
+ displayName_fr: displayName(language: "fr")
103
+ }
104
+ }
105
+ }
106
+ ```
107
+
108
+ Unlike the REST API, GraphQL has **no global locale** on the session — you pass `language:` per field. A query can retrieve English and French properties in the same call.
109
+
110
+ The `validInLanguage` parameter (graphql-dxm-provider 2.10.0+) filters out nodes that have no content in the specified language:
111
+
112
+ ```graphql
113
+ jcr {
114
+ nodeByPath(path: "/sites/digitall/home", validInLanguage: "fr") { name }
115
+ }
116
+ ```
117
+
118
+ ---
119
+
120
+ ## JCR queries
121
+
122
+ ### Top-level query fields
123
+
124
+ ```graphql
125
+ extends type Query {
126
+ jcr(workspace: Workspace): JCRQuery
127
+ }
128
+
129
+ type JCRQuery {
130
+ nodeById(uuid: String!): JCRNode!
131
+ nodeByPath(path: String!): JCRNode!
132
+ nodesById(uuids: [String!]!): [JCRNode]!
133
+ nodesByPath(paths: [String!]!): [JCRNode]!
134
+ nodesByQuery(query: String!, queryLanguage: QueryLanguage = SQL2, ...connection args...): JCRNodeConnection
135
+ nodesByCriteria(criteria: InputGqlJcrNodeCriteriaInput!, ...connection args...): JCRNodeConnection
136
+ }
137
+ ```
138
+
139
+ ### Get a node and its properties
140
+
141
+ ```graphql
142
+ query highlight {
143
+ jcr {
144
+ nodeByPath(path: "/sites/digitall/home/area-main/highlights/our-companies") {
145
+ title: property(language: "en", name: "jcr:title") { value }
146
+ description: property(language: "en", name: "description") { value }
147
+ internalLink: property(language: "en", name: "internalLink") { value }
148
+ }
149
+ }
150
+ }
151
+ ```
152
+
153
+ ### Get rendered HTML for a node
154
+
155
+ ```graphql
156
+ query {
157
+ jcr {
158
+ nodeByPath(path: "/sites/digitall/home/area-main/highlights/our-companies") {
159
+ renderedContent(
160
+ view: "imgView"
161
+ contextConfiguration: "module"
162
+ templateType: "html"
163
+ requestAttributes: [{name: "someAttribute", value: "someValue"}]
164
+ ) { output }
165
+ }
166
+ }
167
+ }
168
+ ```
169
+
170
+ ### Get all properties
171
+
172
+ ```graphql
173
+ query {
174
+ jcr {
175
+ nodeByPath(path: "/sites/digitall") {
176
+ properties { name value values }
177
+ }
178
+ }
179
+ }
180
+ ```
181
+
182
+ ### Children filtered by type and property
183
+
184
+ ```graphql
185
+ {
186
+ jcr(workspace: LIVE) {
187
+ nodeByPath(path: "/sites/digitall/home") {
188
+ children(
189
+ typesFilter: {types: ["jnt:page"]}
190
+ propertiesFilter: {filters: [{property: "j:templateName", value: "home"}]}
191
+ ) {
192
+ nodes {
193
+ name
194
+ name_en: displayName(language: "en")
195
+ createdBy: property(name: "jcr:createdBy") { value }
196
+ }
197
+ }
198
+ }
199
+ }
200
+ }
201
+ ```
202
+
203
+ ### Descendants with type filter (paginated)
204
+
205
+ ```graphql
206
+ query paginatedContents {
207
+ jcr {
208
+ nodesByPath(paths: ["/sites/digitall/home"]) {
209
+ descendants(
210
+ first: 3
211
+ after: "NTE3ZjE1YmMtZTViYS00YzVkLWIxNmUtMDhiMTgzYTkzMTli"
212
+ typesFilter: {types: ["jmix:editorialContent"], multi: ANY}
213
+ recursionTypesFilter: {multi: NONE, types: ["jnt:page", "jnt:contentFolder"]}
214
+ ) {
215
+ edges {
216
+ index
217
+ cursor
218
+ node { displayName path primaryNodeType { displayName(language: "en") } }
219
+ }
220
+ }
221
+ }
222
+ }
223
+ }
224
+ ```
225
+
226
+ ### SQL2 query
227
+
228
+ ```graphql
229
+ {
230
+ jcr(workspace: LIVE) {
231
+ nodesByQuery(query: "select * from [jnt:page]", offset: 2, limit: 10) {
232
+ edges {
233
+ index
234
+ cursor
235
+ node { displayName(language: "en") }
236
+ }
237
+ }
238
+ }
239
+ }
240
+ ```
241
+
242
+ ### Structured criteria query (alternative to SQL2)
243
+
244
+ ```graphql
245
+ query {
246
+ jcr {
247
+ nodesByCriteria(criteria: {
248
+ nodeType: "jnt:bigText"
249
+ paths: ["/sites/digitall/home"]
250
+ nodeConstraint: { property: "text", contains: "test" }
251
+ }) {
252
+ nodes { uuid }
253
+ }
254
+ }
255
+ }
256
+ # Equivalent SQL2: SELECT * FROM [jnt:bigText] WHERE ISDESCENDANTNODE("/sites/digitall/home") AND text LIKE "%test%"
257
+ ```
258
+
259
+ ### Publication info
260
+
261
+ ```graphql
262
+ extend type JCRNode {
263
+ aggregatedPublicationInfo(language: String, includesReferences: Boolean, includesSubNodes: Boolean): PublicationInfo
264
+ vanityURLs(languages: [String], onlyActive: Boolean, onlyDefault: Boolean): [VanityURL]
265
+ lockInfo: LockInfo
266
+ }
267
+ ```
268
+
269
+ ### Count descendants
270
+
271
+ ```graphql
272
+ query pagesCount {
273
+ jcr {
274
+ nodeByPath(path: "/sites/digitall") {
275
+ descendants(typesFilter: {types: ["jnt:page"]}) {
276
+ pageInfo { totalCount }
277
+ }
278
+ }
279
+ }
280
+ }
281
+ ```
282
+
283
+ ---
284
+
285
+ ## JCR mutations
286
+
287
+ Session save happens automatically at the end of each `mutation { jcr }` block. Use multiple `jcr` blocks for multiple save points.
288
+
289
+ ### Rename and set property
290
+
291
+ ```graphql
292
+ mutation mutationExample {
293
+ jcr {
294
+ mutateNode(pathOrId: "/sites/digitall/home/corporate-responsibility") {
295
+ rename(name: "responsibility")
296
+ mutateProperty(name: "j:published") {
297
+ setValue(type: BOOLEAN, value: "false")
298
+ }
299
+ }
300
+ modifiedNodes { path }
301
+ }
302
+ }
303
+ ```
304
+
305
+ ### Add a node
306
+
307
+ ```graphql
308
+ mutation {
309
+ jcr(workspace: EDIT) {
310
+ addNode(
311
+ parentPathOrId: "/sites/mySite"
312
+ name: "page"
313
+ primaryNodeType: "jnt:page"
314
+ properties: [
315
+ {language: "en", name: "jcr:title", type: STRING, value: "Page"}
316
+ {name: "j:templateName", type: STRING, value: "2col"}
317
+ ]
318
+ ) { uuid }
319
+ modifiedNodes { uuid name }
320
+ }
321
+ }
322
+ ```
323
+
324
+ ### Update a property
325
+
326
+ ```graphql
327
+ mutation {
328
+ jcr(workspace: EDIT) {
329
+ mutateNode(pathOrId: "/sites/mySite/page") {
330
+ mutateProperty(name: "j:templateName") {
331
+ setValue(type: STRING, value: "3col")
332
+ }
333
+ }
334
+ }
335
+ }
336
+ ```
337
+
338
+ ### Add a mixin
339
+
340
+ ```graphql
341
+ mutation {
342
+ jcr(workspace: EDIT) {
343
+ mutateNode(pathOrId: "/sites/mySite/page") {
344
+ addMixins(mixins: "jmix:tagged")
345
+ }
346
+ }
347
+ }
348
+ ```
349
+
350
+ ### Publish a node
351
+
352
+ ```graphql
353
+ mutation publishContent {
354
+ jcr {
355
+ mutateNode(pathOrId: "/sites/digitall/home/about") { publish }
356
+ }
357
+ }
358
+ ```
359
+
360
+ ### Delete a node
361
+
362
+ ```graphql
363
+ mutation {
364
+ jcr(workspace: EDIT) {
365
+ mutateNode(pathOrId: "/sites/mySite/home") { delete }
366
+ }
367
+ }
368
+ ```
369
+
370
+ ### Edit OSGi configuration via GraphQL
371
+
372
+ ```graphql
373
+ mutation {
374
+ admin {
375
+ jahia {
376
+ configuration(pid: "org.jahia.modules.automatedtags.service.impl.AutomatedTagServiceImpl") {
377
+ accessKey: value(name: "automated-tags.accessKey", value: "xxxxxx")
378
+ endpoint: value(name: "automated-tags.endpoint", value: "https://rekognition.eu-central-1.amazonaws.com")
379
+ }
380
+ }
381
+ }
382
+ }
383
+ ```
384
+
385
+ ### JCRNodeMutation available operations
386
+
387
+ - `mutateProperty` / `mutateProperties` → `JCRPropertyMutation` (setValue, addValue, removeValue)
388
+ - `addChild` / `addChildrenBatch`
389
+ - `mutateChildren` / `mutateDescendants`
390
+ - `addMixins` / `removeMixins`
391
+ - `move` / `rename`
392
+ - `delete` / `markForDeletion` / `unmarkForDeletion`
393
+ - `reorderChildren`
394
+ - `setPropertiesBatch`
395
+ - `lock(type, recursive)` / `unlock(type, recursive, force)`
396
+ - `publish(languages)`
397
+
398
+ ---
399
+
400
+ ## Pagination (Connection pattern)
401
+
402
+ Jahia GraphQL follows the [Relay connection spec](https://facebook.github.io/relay/graphql/connections.htm). Any field returning `...Connection` type supports:
403
+
404
+ **Arguments**: `first`, `after`, `last`, `before`, `afterOffset`, `beforeOffset`
405
+
406
+ **PageInfo type**:
407
+
408
+ ```graphql
409
+ type PageInfo {
410
+ hasNextPage: Boolean!
411
+ hasPreviousPage: Boolean!
412
+ startCursor: String
413
+ endCursor: String
414
+ nodesCount: Int # items in current page
415
+ totalCount: Int # total items
416
+ }
417
+ ```
418
+
419
+ **Connection and Edge template**:
420
+
421
+ ```graphql
422
+ type XxxConnection {
423
+ edges: [XxxEdge]
424
+ pageInfo: PageInfo
425
+ nodes: [Xxx] # shortcut for edges { node }
426
+ }
427
+ type XxxEdge {
428
+ node: Xxx
429
+ cursor: String
430
+ offset: Int
431
+ }
432
+ ```
433
+
434
+ **Important**: `nodesCount` is items in the current page; `totalCount` is the full count. The `nodes` shortcut is non-standard but available on all Jahia connections.
435
+
436
+ ---
437
+
438
+ ## Field filtering and sorting
439
+
440
+ Fields returning Connection or lists accept `fieldFilter` and `fieldSorter`:
441
+
442
+ ```graphql
443
+ nodesByQuery(
444
+ query: "SELECT * FROM [jnt:page]"
445
+ fieldFilter: {filters: {evaluation: NOT_EMPTY, fieldName: "node.vanityUrls"}}
446
+ fieldSorter: {fieldName: "displayName", sortType: ASC}
447
+ ) { ... }
448
+ ```
449
+
450
+ ---
451
+
452
+ ## Extending the schema — SDL
453
+
454
+ Place your SDL file at:
455
+
456
+ ```
457
+ /<module_home>/src/main/resources/META-INF/graphql-extension.sdl
458
+ ```
459
+
460
+ The filename must be exactly `graphql-extension.sdl`.
461
+
462
+ ### SDL example — mapping JCR node types
463
+
464
+ ```graphql
465
+ extend type Query {
466
+ allHotel: [hotel]
467
+ hotelByCity: [hotel]
468
+ hotelByCityConnection: hotelConnection
469
+ }
470
+
471
+ type hotel @mapping(node: "jnt:hotel") {
472
+ name: String! @mapping(property: "jcr:title")
473
+ city: String @mapping(property: "city")
474
+ address: String @mapping(property: "address")
475
+ country: String @mapping(property: "country")
476
+ metadata: Metadata # built-in Jahia composite type
477
+ rooms: [Room]
478
+ }
479
+
480
+ type Room @mapping(node: "jnt:room") {
481
+ number: Int! @mapping(property: "roomNo")
482
+ specification: String @mapping(property: "description")
483
+ available: Boolean @mapping(property: "available")
484
+ }
485
+ ```
486
+
487
+ **Directives**:
488
+ - `@mapping(node: "jnt:hotel")` on a type — maps to a JCR node type
489
+ - `@mapping(property: "jcr:title")` on a field — maps to a JCR property
490
+
491
+ **Common mistakes**:
492
+ - Extending a type that doesn't exist (`extend type ParagraphSDL { ... }`) → error
493
+ - Mapping to an invalid node type or property → error shown in SDL Report Tool
494
+ - `hotelByPropertyConnection` returning a non-list → connection error
495
+ - All custom queries **must** use `extend type Query { ... }` not `type Query`
496
+
497
+ **Built-in Jahia composite types** (no `@mapping` needed):
498
+ - `Metadata` → `{created, createdBy, lastModified, lastModifiedBy, lastPublished, lastPublishedBy}`
499
+ - `Asset` → `{type, size, metadata}`
500
+ - `ImageAsset` → `{type, size, height, width, metadata}`
501
+ - `Category` → `{title, metadata, description}`
502
+
503
+ **Auto-generated queries**: For each SDL type, Jahia generates `typeById` and `typeByPath` automatically. Explicitly declare only `ByProperty` queries.
504
+
505
+ **Validation**: Check deployment status at **Developer Tools → SDL Report Tool**. Errors appear in red per type or per module.
506
+
507
+ ---
508
+
509
+ ## Extending the schema — Java
510
+
511
+ Implement `DXGraphQLExtensionsProvider` to return annotated Java classes:
512
+
513
+ ```java
514
+ // Extension class using graphql-java-annotations
515
+ @GraphQLName("JCRNodeExtensions")
516
+ public class JCRNodeExtensions implements GqlJcrNode {
517
+
518
+ @GraphQLRequiresPermission("developer-tools-access")
519
+ @GraphQLField
520
+ public String myCustomField(@GraphQLName("arg") String arg) {
521
+ return "result";
522
+ }
523
+ }
524
+ ```
525
+
526
+ Reference implementation: https://github.com/Jahia/graphql-core/tree/master/graphql-extension-example
527
+
528
+ ---
529
+
530
+ ## Apollo client setup
531
+
532
+ ### Package installation
533
+
534
+ ```bash
535
+ yarn add react-apollo apollo-cache-inmemory apollo-client apollo-link-http graphql
536
+ ```
537
+
538
+ ### Apollo client with personal API token (TypeScript)
539
+
540
+ ```typescript
541
+ export const apolloClient = (token: string): ApolloClient<any> => {
542
+ return new ApolloClient({
543
+ link: new HttpLink({
544
+ uri: `${JAHIA_URL}/modules/graphql`,
545
+ headers: {
546
+ authorization: `APIToken ${token}`
547
+ }
548
+ }),
549
+ cache: new InMemoryCache(),
550
+ defaultOptions: {
551
+ query: { fetchPolicy: 'no-cache' }
552
+ }
553
+ });
554
+ };
555
+ ```
556
+
557
+ ### Apollo client with JWT (legacy, deprecated)
558
+
559
+ ```javascript
560
+ const client = new ApolloClient({
561
+ link: new HttpLink({
562
+ uri: 'http://localhost:8080/modules/graphql',
563
+ headers: { 'Authorization': `Bearer ${JWTDXToken}` }
564
+ }),
565
+ cache: new InMemoryCache()
566
+ });
567
+ ```
568
+
569
+ ### Apollo query component example
570
+
571
+ ```javascript
572
+ const COMPANIES_QUERY = gql`
573
+ query CompaniesListQuery($language: String) {
574
+ jcr(workspace: LIVE) {
575
+ nodesByQuery(
576
+ query: "SELECT * FROM [jdnt:company] as results WHERE ISDESCENDANTNODE(results, '/sites/digitall/')"
577
+ queryLanguage: SQL2
578
+ ) {
579
+ nodes {
580
+ uuid
581
+ title: displayName(language: $language)
582
+ description: property(name: "overview", language: $language) { value }
583
+ thumbnail: property(name: "thumbnail", language: $language) {
584
+ url: refNode { path }
585
+ }
586
+ }
587
+ }
588
+ }
589
+ }
590
+ `;
591
+ ```
592
+
593
+ ---
594
+
595
+ ## CORS and OSGi configuration
596
+
597
+ **CORS for GraphQL** — create `org.jahia.modules.graphql.provider-myapp.cfg` in `karaf/etc`:
598
+
599
+ ```properties
600
+ http.cors.allow-origin=http://localhost:3000
601
+ ```
602
+
603
+ Multiple origins: comma-separated list.
604
+
605
+ **Packaging config in a module** — add to `pom.xml`:
606
+
607
+ ```xml
608
+ <plugin>
609
+ <groupId>org.codehaus.mojo</groupId>
610
+ <artifactId>build-helper-maven-plugin</artifactId>
611
+ <executions>
612
+ <execution>
613
+ <id>attach-artifacts</id>
614
+ <phase>package</phase>
615
+ <goals><goal>attach-artifact</goal></goals>
616
+ <configuration>
617
+ <artifacts>
618
+ <artifact>
619
+ <file>src/main/resources/META-INF/configurations/org.jahia.modules.graphql.provider-custom.cfg</file>
620
+ <type>cfg</type>
621
+ <classifier>graphql-cfg</classifier>
622
+ </artifact>
623
+ </artifacts>
624
+ </configuration>
625
+ </execution>
626
+ </executions>
627
+ </plugin>
628
+ ```
629
+
630
+ The default config is at `/digital-factory-data/karaf/etc/org.jahia.modules.graphql.provider-default.cfg`.
631
+
632
+ ---
633
+
634
+ ## GraphQL playground
635
+
636
+ Access via **Developer Tools → GraphQL** in the Jahia admin UI, or directly:
637
+
638
+ ```
639
+ http://localhost:8080/jahia/developerTools/graphql-workspace
640
+ ```
641
+
642
+ Also accessible as Jahia Support Tools: `http://localhost:8080/tools` → **Jahia GraphQL Core Provider: graphql-playground**
643
+
644
+ Use the **Docs** panel to browse the schema, including custom SDL types.
645
+
646
+ ---
647
+
648
+ ## Introspection access control
649
+
650
+ Starting with GraphQL Provider 3.5.0, introspection can be restricted to users with `Developer tools access` permission:
651
+
652
+ ```properties
653
+ # In org.jahia.modules.graphql.provider-*.cfg
654
+ introspectionCheckEnabled=true
655
+ ```
656
+
657
+ When enabled, only authenticated users with the `Developer tools access` server-level permission can run introspection queries. Requires jContent 3.5.0+ when enabled to prevent UI issues.