@jahia/agentic 0.3.0 → 0.4.1

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 (398) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/claude/.claude/rules/jahia.md +13 -40
  3. package/dist/claude/.claude/skills/jahia-cnd-author/SKILL.md +94 -0
  4. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  5. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  6. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  7. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  8. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  9. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  10. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  11. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  12. package/dist/claude/.claude/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  13. package/dist/claude/.claude/skills/jahia-dev-accessibility/SKILL.md +5 -265
  14. package/dist/claude/.claude/skills/jahia-dev-build-component/SKILL.md +15 -7
  15. package/dist/claude/.claude/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  16. package/dist/claude/.claude/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  17. package/dist/claude/.claude/skills/jahia-dev-create-view/SKILL.md +3 -3
  18. package/dist/claude/.claude/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  19. package/dist/claude/.claude/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  20. package/dist/claude/.claude/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  21. package/dist/claude/.claude/skills/jahia-dev-site-review/SKILL.md +70 -0
  22. package/dist/claude/.claude/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  23. package/dist/claude/.claude/skills/jahia-dev-start-local/SKILL.md +18 -26
  24. package/dist/claude/CLAUDE.md +14 -41
  25. package/dist/codex/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  26. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  27. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  28. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  29. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  30. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  31. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  32. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  33. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  34. package/dist/codex/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  35. package/dist/codex/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  36. package/dist/codex/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
  37. package/dist/codex/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  38. package/dist/codex/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  39. package/dist/codex/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
  40. package/dist/codex/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  41. package/dist/codex/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  42. package/dist/codex/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  43. package/dist/codex/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
  44. package/dist/codex/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  45. package/dist/codex/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
  46. package/dist/codex/AGENTS.md +15 -42
  47. package/dist/copilot/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  48. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  49. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  50. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  51. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  52. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  53. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  54. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  55. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  56. package/dist/copilot/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  57. package/dist/copilot/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  58. package/dist/copilot/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
  59. package/dist/copilot/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  60. package/dist/copilot/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  61. package/dist/copilot/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
  62. package/dist/copilot/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  63. package/dist/copilot/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  64. package/dist/copilot/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  65. package/dist/copilot/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
  66. package/dist/copilot/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  67. package/dist/copilot/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
  68. package/dist/copilot/AGENTS.md +15 -42
  69. package/dist/cursor/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  70. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  71. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  72. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  73. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  74. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  75. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  76. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  77. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  78. package/dist/cursor/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  79. package/dist/cursor/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  80. package/dist/cursor/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
  81. package/dist/cursor/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  82. package/dist/cursor/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  83. package/dist/cursor/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
  84. package/dist/cursor/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  85. package/dist/cursor/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  86. package/dist/cursor/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  87. package/dist/cursor/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
  88. package/dist/cursor/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  89. package/dist/cursor/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
  90. package/dist/cursor/.cursor/rules/jahia.mdc +13 -40
  91. package/dist/gemini/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  92. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  93. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  94. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  95. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  96. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  97. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  98. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  99. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  100. package/dist/gemini/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  101. package/dist/gemini/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  102. package/dist/gemini/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
  103. package/dist/gemini/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  104. package/dist/gemini/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  105. package/dist/gemini/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
  106. package/dist/gemini/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  107. package/dist/gemini/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  108. package/dist/gemini/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  109. package/dist/gemini/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
  110. package/dist/gemini/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  111. package/dist/gemini/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
  112. package/dist/gemini/AGENTS.md +15 -42
  113. package/dist/gemini/GEMINI.md +2 -2
  114. package/dist/index.js +13 -0
  115. package/dist/opencode/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  116. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  117. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  118. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  119. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  120. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  121. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  122. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  123. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  124. package/dist/opencode/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  125. package/dist/opencode/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  126. package/dist/opencode/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
  127. package/dist/opencode/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  128. package/dist/opencode/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  129. package/dist/opencode/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
  130. package/dist/opencode/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  131. package/dist/opencode/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  132. package/dist/opencode/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  133. package/dist/opencode/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
  134. package/dist/opencode/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  135. package/dist/opencode/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
  136. package/dist/opencode/AGENTS.md +15 -42
  137. package/dist/windsurf/.windsurf/rules/jahia.md +13 -40
  138. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/SKILL.md +94 -0
  139. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  140. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  141. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  142. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  143. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  144. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  145. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  146. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  147. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  148. package/dist/windsurf/.windsurf/skills/jahia-dev-accessibility/SKILL.md +5 -265
  149. package/dist/windsurf/.windsurf/skills/jahia-dev-build-component/SKILL.md +15 -7
  150. package/dist/windsurf/.windsurf/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  151. package/dist/windsurf/.windsurf/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  152. package/dist/windsurf/.windsurf/skills/jahia-dev-create-view/SKILL.md +3 -3
  153. package/dist/windsurf/.windsurf/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  154. package/dist/windsurf/.windsurf/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  155. package/dist/windsurf/.windsurf/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  156. package/dist/windsurf/.windsurf/skills/jahia-dev-site-review/SKILL.md +70 -0
  157. package/dist/windsurf/.windsurf/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  158. package/dist/windsurf/.windsurf/skills/jahia-dev-start-local/SKILL.md +18 -26
  159. package/dist/windsurf/AGENTS.md +15 -42
  160. package/package.json +1 -1
  161. package/dist/claude/.claude/skills/jahia/SKILL.md +0 -144
  162. package/dist/claude/.claude/skills/jahia-content/SKILL.md +0 -157
  163. package/dist/claude/.claude/skills/jahia-content-create-content/SKILL.md +0 -359
  164. package/dist/claude/.claude/skills/jahia-content-explore-structure/SKILL.md +0 -255
  165. package/dist/claude/.claude/skills/jahia-content-media-upload/SKILL.md +0 -197
  166. package/dist/claude/.claude/skills/jahia-content-move-content/SKILL.md +0 -231
  167. package/dist/claude/.claude/skills/jahia-content-organize/SKILL.md +0 -209
  168. package/dist/claude/.claude/skills/jahia-content-publish/SKILL.md +0 -181
  169. package/dist/claude/.claude/skills/jahia-content-query-content/SKILL.md +0 -174
  170. package/dist/claude/.claude/skills/jahia-content-translate-content/SKILL.md +0 -226
  171. package/dist/claude/.claude/skills/jahia-dev/SKILL.md +0 -124
  172. package/dist/claude/.claude/skills/jahia-dev-apis/SKILL.md +0 -52
  173. package/dist/claude/.claude/skills/jahia-dev-apis/references/authentication.md +0 -484
  174. package/dist/claude/.claude/skills/jahia-dev-apis/references/graphql.md +0 -657
  175. package/dist/claude/.claude/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  176. package/dist/claude/.claude/skills/jahia-dev-apis/references/security.md +0 -541
  177. package/dist/claude/.claude/skills/jahia-dev-cypress/SKILL.md +0 -265
  178. package/dist/claude/.claude/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  179. package/dist/claude/.claude/skills/jahia-dev-java/SKILL.md +0 -110
  180. package/dist/claude/.claude/skills/jahia-dev-java/references/backend.md +0 -331
  181. package/dist/claude/.claude/skills/jahia-dev-java/references/content-types.md +0 -273
  182. package/dist/claude/.claude/skills/jahia-dev-java/references/modules.md +0 -218
  183. package/dist/claude/.claude/skills/jahia-dev-java/references/osgi.md +0 -208
  184. package/dist/claude/.claude/skills/jahia-dev-java/references/rendering.md +0 -191
  185. package/dist/claude/.claude/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  186. package/dist/claude/.claude/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  187. package/dist/claude/.claude/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  188. package/dist/claude/.claude/skills/jahia-java-concurrency/SKILL.md +0 -308
  189. package/dist/claude/.claude/skills/jahia-java-jcr/SKILL.md +0 -153
  190. package/dist/claude/.claude/skills/jahia-java-osgi/SKILL.md +0 -134
  191. package/dist/claude/.claude/skills/jahia-java-persistence/SKILL.md +0 -177
  192. package/dist/claude/.claude/skills/jahia-java-security/SKILL.md +0 -84
  193. package/dist/claude/.claude/skills/jahia-review-java/SKILL.md +0 -131
  194. package/dist/claude/.claude/skills/jahia-review-java/references/code-review-output.md +0 -121
  195. package/dist/codex/.agents/skills/jahia/SKILL.md +0 -144
  196. package/dist/codex/.agents/skills/jahia-content/SKILL.md +0 -157
  197. package/dist/codex/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  198. package/dist/codex/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  199. package/dist/codex/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  200. package/dist/codex/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  201. package/dist/codex/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  202. package/dist/codex/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  203. package/dist/codex/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  204. package/dist/codex/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  205. package/dist/codex/.agents/skills/jahia-dev/SKILL.md +0 -124
  206. package/dist/codex/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  207. package/dist/codex/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  208. package/dist/codex/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  209. package/dist/codex/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  210. package/dist/codex/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  211. package/dist/codex/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  212. package/dist/codex/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  213. package/dist/codex/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  214. package/dist/codex/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  215. package/dist/codex/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  216. package/dist/codex/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  217. package/dist/codex/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  218. package/dist/codex/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  219. package/dist/codex/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  220. package/dist/codex/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  221. package/dist/codex/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  222. package/dist/codex/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  223. package/dist/codex/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  224. package/dist/codex/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  225. package/dist/codex/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  226. package/dist/codex/.agents/skills/jahia-java-security/SKILL.md +0 -84
  227. package/dist/codex/.agents/skills/jahia-review-java/SKILL.md +0 -131
  228. package/dist/codex/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  229. package/dist/copilot/.agents/skills/jahia/SKILL.md +0 -144
  230. package/dist/copilot/.agents/skills/jahia-content/SKILL.md +0 -157
  231. package/dist/copilot/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  232. package/dist/copilot/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  233. package/dist/copilot/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  234. package/dist/copilot/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  235. package/dist/copilot/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  236. package/dist/copilot/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  237. package/dist/copilot/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  238. package/dist/copilot/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  239. package/dist/copilot/.agents/skills/jahia-dev/SKILL.md +0 -124
  240. package/dist/copilot/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  241. package/dist/copilot/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  242. package/dist/copilot/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  243. package/dist/copilot/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  244. package/dist/copilot/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  245. package/dist/copilot/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  246. package/dist/copilot/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  247. package/dist/copilot/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  248. package/dist/copilot/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  249. package/dist/copilot/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  250. package/dist/copilot/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  251. package/dist/copilot/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  252. package/dist/copilot/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  253. package/dist/copilot/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  254. package/dist/copilot/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  255. package/dist/copilot/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  256. package/dist/copilot/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  257. package/dist/copilot/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  258. package/dist/copilot/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  259. package/dist/copilot/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  260. package/dist/copilot/.agents/skills/jahia-java-security/SKILL.md +0 -84
  261. package/dist/copilot/.agents/skills/jahia-review-java/SKILL.md +0 -131
  262. package/dist/copilot/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  263. package/dist/cursor/.agents/skills/jahia/SKILL.md +0 -144
  264. package/dist/cursor/.agents/skills/jahia-content/SKILL.md +0 -157
  265. package/dist/cursor/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  266. package/dist/cursor/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  267. package/dist/cursor/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  268. package/dist/cursor/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  269. package/dist/cursor/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  270. package/dist/cursor/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  271. package/dist/cursor/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  272. package/dist/cursor/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  273. package/dist/cursor/.agents/skills/jahia-dev/SKILL.md +0 -124
  274. package/dist/cursor/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  275. package/dist/cursor/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  276. package/dist/cursor/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  277. package/dist/cursor/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  278. package/dist/cursor/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  279. package/dist/cursor/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  280. package/dist/cursor/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  281. package/dist/cursor/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  282. package/dist/cursor/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  283. package/dist/cursor/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  284. package/dist/cursor/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  285. package/dist/cursor/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  286. package/dist/cursor/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  287. package/dist/cursor/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  288. package/dist/cursor/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  289. package/dist/cursor/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  290. package/dist/cursor/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  291. package/dist/cursor/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  292. package/dist/cursor/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  293. package/dist/cursor/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  294. package/dist/cursor/.agents/skills/jahia-java-security/SKILL.md +0 -84
  295. package/dist/cursor/.agents/skills/jahia-review-java/SKILL.md +0 -131
  296. package/dist/cursor/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  297. package/dist/gemini/.agents/skills/jahia/SKILL.md +0 -144
  298. package/dist/gemini/.agents/skills/jahia-content/SKILL.md +0 -157
  299. package/dist/gemini/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  300. package/dist/gemini/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  301. package/dist/gemini/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  302. package/dist/gemini/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  303. package/dist/gemini/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  304. package/dist/gemini/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  305. package/dist/gemini/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  306. package/dist/gemini/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  307. package/dist/gemini/.agents/skills/jahia-dev/SKILL.md +0 -124
  308. package/dist/gemini/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  309. package/dist/gemini/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  310. package/dist/gemini/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  311. package/dist/gemini/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  312. package/dist/gemini/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  313. package/dist/gemini/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  314. package/dist/gemini/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  315. package/dist/gemini/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  316. package/dist/gemini/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  317. package/dist/gemini/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  318. package/dist/gemini/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  319. package/dist/gemini/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  320. package/dist/gemini/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  321. package/dist/gemini/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  322. package/dist/gemini/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  323. package/dist/gemini/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  324. package/dist/gemini/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  325. package/dist/gemini/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  326. package/dist/gemini/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  327. package/dist/gemini/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  328. package/dist/gemini/.agents/skills/jahia-java-security/SKILL.md +0 -84
  329. package/dist/gemini/.agents/skills/jahia-review-java/SKILL.md +0 -131
  330. package/dist/gemini/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  331. package/dist/opencode/.agents/skills/jahia/SKILL.md +0 -144
  332. package/dist/opencode/.agents/skills/jahia-content/SKILL.md +0 -157
  333. package/dist/opencode/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  334. package/dist/opencode/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  335. package/dist/opencode/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  336. package/dist/opencode/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  337. package/dist/opencode/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  338. package/dist/opencode/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  339. package/dist/opencode/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  340. package/dist/opencode/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  341. package/dist/opencode/.agents/skills/jahia-dev/SKILL.md +0 -124
  342. package/dist/opencode/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  343. package/dist/opencode/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  344. package/dist/opencode/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  345. package/dist/opencode/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  346. package/dist/opencode/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  347. package/dist/opencode/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  348. package/dist/opencode/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  349. package/dist/opencode/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  350. package/dist/opencode/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  351. package/dist/opencode/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  352. package/dist/opencode/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  353. package/dist/opencode/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  354. package/dist/opencode/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  355. package/dist/opencode/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  356. package/dist/opencode/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  357. package/dist/opencode/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  358. package/dist/opencode/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  359. package/dist/opencode/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  360. package/dist/opencode/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  361. package/dist/opencode/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  362. package/dist/opencode/.agents/skills/jahia-java-security/SKILL.md +0 -84
  363. package/dist/opencode/.agents/skills/jahia-review-java/SKILL.md +0 -131
  364. package/dist/opencode/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  365. package/dist/windsurf/.windsurf/skills/jahia/SKILL.md +0 -144
  366. package/dist/windsurf/.windsurf/skills/jahia-content/SKILL.md +0 -157
  367. package/dist/windsurf/.windsurf/skills/jahia-content-create-content/SKILL.md +0 -359
  368. package/dist/windsurf/.windsurf/skills/jahia-content-explore-structure/SKILL.md +0 -255
  369. package/dist/windsurf/.windsurf/skills/jahia-content-media-upload/SKILL.md +0 -197
  370. package/dist/windsurf/.windsurf/skills/jahia-content-move-content/SKILL.md +0 -231
  371. package/dist/windsurf/.windsurf/skills/jahia-content-organize/SKILL.md +0 -209
  372. package/dist/windsurf/.windsurf/skills/jahia-content-publish/SKILL.md +0 -181
  373. package/dist/windsurf/.windsurf/skills/jahia-content-query-content/SKILL.md +0 -174
  374. package/dist/windsurf/.windsurf/skills/jahia-content-translate-content/SKILL.md +0 -226
  375. package/dist/windsurf/.windsurf/skills/jahia-dev/SKILL.md +0 -124
  376. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/SKILL.md +0 -52
  377. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/authentication.md +0 -484
  378. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/graphql.md +0 -657
  379. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  380. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/security.md +0 -541
  381. package/dist/windsurf/.windsurf/skills/jahia-dev-cypress/SKILL.md +0 -265
  382. package/dist/windsurf/.windsurf/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  383. package/dist/windsurf/.windsurf/skills/jahia-dev-java/SKILL.md +0 -110
  384. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/backend.md +0 -331
  385. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/content-types.md +0 -273
  386. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/modules.md +0 -218
  387. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/osgi.md +0 -208
  388. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/rendering.md +0 -191
  389. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  390. package/dist/windsurf/.windsurf/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  391. package/dist/windsurf/.windsurf/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  392. package/dist/windsurf/.windsurf/skills/jahia-java-concurrency/SKILL.md +0 -308
  393. package/dist/windsurf/.windsurf/skills/jahia-java-jcr/SKILL.md +0 -153
  394. package/dist/windsurf/.windsurf/skills/jahia-java-osgi/SKILL.md +0 -134
  395. package/dist/windsurf/.windsurf/skills/jahia-java-persistence/SKILL.md +0 -177
  396. package/dist/windsurf/.windsurf/skills/jahia-java-security/SKILL.md +0 -84
  397. package/dist/windsurf/.windsurf/skills/jahia-review-java/SKILL.md +0 -131
  398. package/dist/windsurf/.windsurf/skills/jahia-review-java/references/code-review-output.md +0 -121
@@ -1,484 +0,0 @@
1
- # Authentication Reference
2
-
3
- Covers personal API tokens, OAuth 2.0 social login, SAML 2.0, and the UPA (username/password + MFA) module.
4
-
5
- ## Table of Contents
6
-
7
- - [Personal API Tokens](#personal-api-tokens)
8
- - [Module installation](#module-installation)
9
- - [Creating a token via admin UI](#creating-a-token-via-admin-ui)
10
- - [Using tokens in API calls](#using-tokens-in-api-calls)
11
- - [Managing tokens](#managing-tokens)
12
- - [Managing tokens via GraphQL](#managing-tokens-via-graphql)
13
- - [Managing tokens via filesystem (Groovy)](#managing-tokens-via-filesystem-groovy)
14
- - [OAuth 2.0 — Social Login](#oauth-20--social-login)
15
- - [Available connectors](#available-connectors)
16
- - [Required modules](#required-modules)
17
- - [Configuring a social connector](#configuring-a-social-connector)
18
- - [Mapping user fields](#mapping-user-fields)
19
- - [Adding social login buttons to pages](#adding-social-login-buttons-to-pages)
20
- - [Building a custom OAuth connector](#building-a-custom-oauth-connector)
21
- - [SAML 2.0](#saml-20)
22
- - [Module installation](#module-installation-1)
23
- - [Creating a keystore](#creating-a-keystore)
24
- - [Configuring SAML in Site Settings](#configuring-saml-in-site-settings)
25
- - [Configuration file example](#configuration-file-example)
26
- - [Mapping users from IdP](#mapping-users-from-idp)
27
- - [Triggering SAML login](#triggering-saml-login)
28
- - [Private pages and SAML authentication](#private-pages-and-saml-authentication)
29
- - [UPA — User Password Authentication Module](#upa--user-password-authentication-module)
30
- - [What it adds over default auth](#what-it-adds-over-default-auth)
31
- - [Prerequisites](#prerequisites)
32
- - [Installation](#installation)
33
- - [Setup: login URL provider](#setup-login-url-provider)
34
- - [Authentication flow](#authentication-flow)
35
- - [Customization](#customization)
36
- - [Known limitations](#known-limitations)
37
-
38
- ---
39
-
40
- ## Personal API Tokens
41
-
42
- Module ID: `personal-api-tokens`. Compatible with Jahia 8.0.1+. Tokens are stored in the JCR and persist across upgrades.
43
-
44
- **Key concept:** A token is tied to its creator's account and inherits that user's permissions. Create one token per external service — if a token is compromised, revoke only that token without affecting others.
45
-
46
- ### Module installation
47
-
48
- Install via **Jahia Administration > Modules and Extensions > Modules**. Requires the module to be deployed on the server (not per site).
49
-
50
- ### Creating a token via admin UI
51
-
52
- 1. Navigate to **Dashboard > My API tokens**.
53
- 2. Click **Create Token**.
54
- 3. Provide a **Name** (unique per user) and an optional **Expiration date**.
55
- 4. Click **Create**. The token string is shown **once only** — copy it immediately.
56
-
57
- Access to this page requires the **"Personal api tokens"** server role permission. "Live role" or "Edit role" is not sufficient.
58
-
59
- ### Using tokens in API calls
60
-
61
- Pass the token in the `Authorization` header prefixed with `APIToken`:
62
-
63
- ```
64
- Authorization: APIToken <your-token-value>
65
- ```
66
-
67
- **cURL example:**
68
-
69
- ```bash
70
- curl -H "Authorization: APIToken XXXXXXXXXX" https://JAHIA_URL/modules/healthcheck
71
- ```
72
-
73
- **Apollo Client (TypeScript) example:**
74
-
75
- ```typescript
76
- export const apolloClient = (token: string): ApolloClient => {
77
- return new ApolloClient({
78
- link: new HttpLink({
79
- uri: `JAHIA_URL/modules/graphql`,
80
- headers: {
81
- authorization: `APIToken ${token}`
82
- }
83
- }),
84
- cache: new InMemoryCache(),
85
- defaultOptions: {
86
- query: { fetchPolicy: 'no-cache' }
87
- }
88
- });
89
- };
90
- ```
91
-
92
- ### Managing tokens
93
-
94
- From **Dashboard > My API tokens**, you can view token name, access key, expiration date, and status. Actions: **Delete**, **Activate**, **Disable**.
95
-
96
- Admins can manage other users' tokens at **Administration > Users and Roles > User API tokens** (requires the "Admin personal api tokens" server administration permission). Admins can disable/delete but cannot create tokens for other users.
97
-
98
- ### Managing tokens via GraphQL
99
-
100
- Entry point: `admin.personalAPITokens`. Additional operations beyond the UI:
101
-
102
- - `verifyToken` — check if a token is valid
103
- - Update a token's name or expiry date
104
-
105
- ### Managing tokens via filesystem (Groovy)
106
-
107
- Useful for automating token creation on first Jahia startup. Place Groovy scripts in `digital-factory-data/patches/groovy/`. Use the CLI tool to generate valid token strings:
108
-
109
- ```bash
110
- git clone git@github.com:Jahia/personal-api-token
111
- cd personal-api-token && mvn clean install
112
- cd target && java -jar personal-api-tokens-1.6.0-cli.jar
113
- # Output: {"token": "b765L5rY...", "key": "6fbeb92f-..."}
114
- ```
115
-
116
- **Create a token via Groovy:**
117
-
118
- ```groovy
119
- setResult("remove");
120
- org.jahia.services.content.JCRTemplate.getInstance().doExecuteWithSystemSession({ session ->
121
- org.jahia.osgi.BundleUtils.getOsgiService("org.jahia.modules.apitokens.TokenService")
122
- .tokenBuilder("/users/root", "test-token12345", session)
123
- .setToken("kgHNm05iQV61I+GY3X5HVr13i866HAAsyou8G+eGubk=")
124
- .setActive(true)
125
- .setExpirationDate(new org.joda.time.DateTime('2021-12-31').toCalendar(Locale.getDefault()))
126
- .create()
127
- session.save();
128
- })
129
- ```
130
-
131
- **Delete a token via Groovy:**
132
-
133
- ```groovy
134
- setResult("remove");
135
- org.jahia.services.content.JCRTemplate.getInstance().doExecuteWithSystemSession({ session ->
136
- org.jahia.osgi.BundleUtils.getOsgiService("org.jahia.modules.apitokens.TokenService")
137
- .deleteToken("9201cd9b-4e62-415e-b523-e198dd7e4756", session)
138
- session.save();
139
- })
140
- ```
141
-
142
- **Update a token via Groovy:**
143
-
144
- ```groovy
145
- setResult("remove");
146
- org.jahia.services.content.JCRTemplate.getInstance().doExecuteWithSystemSession({ session ->
147
- def service = org.jahia.osgi.BundleUtils.getOsgiService("org.jahia.modules.apitokens.TokenService")
148
- def tokenDetails = service.getTokenDetails("9201cd9b-4e62-415e-b523-e198dd7e4756", session)
149
- tokenDetails.setActive(false)
150
- service.updateToken(tokenDetails, session)
151
- session.save();
152
- })
153
- ```
154
-
155
- `setResult("remove")` causes the Groovy script file to be deleted after execution.
156
-
157
- ---
158
-
159
- ## OAuth 2.0 — Social Login
160
-
161
- ### Available connectors
162
-
163
- The Jahia OAuth module (compatible with Jahia 8.0.1+) bundles connectors for:
164
-
165
- - Google
166
- - Facebook
167
- - LinkedIn
168
- - GitHub
169
- - FranceConnect
170
-
171
- No code is required to use the built-in connectors; login buttons are added via drag-and-drop.
172
-
173
- ### Required modules
174
-
175
- | Module | Purpose |
176
- |--------|---------|
177
- | Jahia Authentication | Backbone SSO framework |
178
- | Jahia OAuth | OAuth connectors (Google, Facebook, etc.) |
179
- | JCR Authentication Provider | Maps social profile attributes to Jahia user attributes |
180
- | jExperience Auth data mapper | (Optional) Maps attributes to jExperience visitor profiles for personalization |
181
-
182
- Install all required modules via **Jahia Administration > Modules and Extensions > Modules** before configuring.
183
-
184
- ### Configuring a social connector
185
-
186
- 1. Navigate to **Administration > Sites > Jahia Authentication**.
187
- 2. Expand the connector to configure (e.g., **Google Connector**).
188
- 3. Toggle **Activate**.
189
- 4. Fill in:
190
- - **ID Client** — your OAuth application's client ID
191
- - **Secret client** — your OAuth application's secret
192
- - **Scope** — data to request from users (e.g., `profile email` for GitHub, `public_profile` for Facebook, `r_emailaddress r_liteprofile` for LinkedIn)
193
- - **Callback URL** — where users are redirected after login. Must end with the connector-specific suffix, e.g., `.googleOAuthCallbackAction.do`. Example: `http://mysite.com/sites/digitall/home.googleOAuthCallbackAction.do`
194
- 5. Click **Save**.
195
-
196
- After saving, the **Actions** button becomes available for user field mapping.
197
-
198
- **Creating OAuth applications** (external provider consoles):
199
-
200
- - Google: https://console.developers.google.com/apis/credentials/oauthclient
201
- - Facebook: https://developers.facebook.com/apps/
202
- - LinkedIn: https://www.linkedin.com/developers/
203
- - GitHub: https://github.com/settings/developers
204
- - FranceConnect: https://partenaires.franceconnect.gouv.fr/fcp/fournisseur-identite
205
-
206
- ### Mapping user fields
207
-
208
- After configuring a connector, map the social login fields to Jahia user fields:
209
-
210
- 1. On the connector settings page, click **Actions**.
211
- 2. Expand the **JCR OAuth provider** section and toggle **Activate**.
212
- 3. In **Field from connector**, select social fields (e.g., First name, Last name, Google ID).
213
- 4. In **Field from provider**, select Jahia fields (e.g., First name, Last name, Login username mandatory).
214
- 5. Click **Save**.
215
-
216
- ### Adding social login buttons to pages
217
-
218
- Add social login buttons like any Jahia component — find them under **Jahia OAuth button connector** in the **Select Content Type** dialog.
219
-
220
- When Jahia OAuth is enabled, an **Authentication Results** page is created at `sites/_your-project_/oauth-result`. This page must be published.
221
-
222
- ### Building a custom OAuth connector
223
-
224
- Requirements: OAuth 2.x protocol, knowledge of Jahia module development.
225
-
226
- **Steps:**
227
-
228
- 1. Create a Jahia module.
229
-
230
- 2. Add dependencies to `pom.xml`:
231
-
232
- ```xml
233
- <dependencies>
234
- <dependency>
235
- <groupId>org.jahia.modules</groupId>
236
- <artifactId>jahia-oauth</artifactId>
237
- <version>3.0.0</version>
238
- <scope>provided</scope>
239
- </dependency>
240
- <dependency>
241
- <groupId>org.jahia.modules</groupId>
242
- <artifactId>jahia-authentication</artifactId>
243
- <version>1.0.0</version>
244
- <scope>provided</scope>
245
- </dependency>
246
- </dependencies>
247
- ```
248
-
249
- 3. Add node types to `definitions.cnd`:
250
-
251
- ```
252
- [joant:myConnectorOAuthView] > jnt:content, jmix:authConnectorSettingView
253
- [joant:myConnectorButton] > jnt:content, joamix:oauthButtonConnector
254
- ```
255
-
256
- 4. Register the OSGi service in your blueprint XML:
257
-
258
- ```xml
259
- <osgi:reference id="jahiaOAuthService"
260
- interface="org.jahia.modules.jahiaoauth.service.JahiaOAuthService"
261
- availability="mandatory"/>
262
-
263
- <osgi:service ref="MyConnectorImpl"
264
- interface="org.jahia.modules.jahiaoauth.service.ConnectorService">
265
- <osgi:service-properties>
266
- <entry key="connectorServiceName" value="MyConnectorApi"/>
267
- </osgi:service-properties>
268
- </osgi:service>
269
- ```
270
-
271
- The `connectorServiceName` must be consistent between the blueprint, the Spring file in Jahia OAuth module, and any JavaScript code in your module.
272
-
273
- 5. Create views for `joant:myConnectorOAuthView` (settings UI) and `joant:myConnectorButton` (login button).
274
-
275
- **Action modules** execute logic after authentication (e.g., provision users). Two types:
276
-
277
- - **Provider** — performs the login/connection
278
- - **Data mapper** — stores user data (e.g., to jExperience profiles)
279
-
280
- Implement `org.jahia.modules.jahiaauth.service.Mapper` for data mapper action modules.
281
-
282
- ---
283
-
284
- ## SAML 2.0
285
-
286
- ### Module installation
287
-
288
- Deploy and install these three modules:
289
-
290
- 1. [SAML2 Authentication Valve](https://store.jahia.com/contents/modules-repository/org/jahia/modules/saml-authentication-valve.html)
291
- 2. [Jahia Authentication](https://store.jahia.com/contents/modules-repository/org/jahia/modules/jahia-authentication.html)
292
- 3. [JCR Authentication Provider](https://store.jahia.com/contents/modules-repository/org/jahia/modules/jcr-auth-provider.html)
293
-
294
- ### Creating a keystore
295
-
296
- ```bash
297
- keytool -genkeypair \
298
- -alias jahiakeystorealias \
299
- -keypass changeit \
300
- -keystore sp.jks \
301
- -storepass changeit \
302
- -keyalg RSA \
303
- -keysize 2048 \
304
- -validity 3650
305
- ```
306
-
307
- When prompted "What is your first and last name?", enter your Jahia site domain name (must match `jahia.server.name`).
308
-
309
- ### Configuring SAML in Site Settings
310
-
311
- 1. Navigate to **Administration > Sites > Jahia Authentication** and expand **SAML2 Settings**.
312
- 2. Toggle **Activate**.
313
- 3. Upload the **Identity Provider Metadata** XML file (from your IdP, e.g., Shibboleth, Google).
314
- 4. Fill in:
315
- - **Relying Party Identifier** — your SP identifier sent to the IdP
316
- - **Server Location** — public URL of your Jahia site (e.g., `http://localhost:8080`)
317
- - Keystore values (or leave keystore empty to auto-generate one using hostname as CN)
318
- - **Incoming Target URL** — where IdP returns SAML response (default: `/home.callback.saml`)
319
- - **Redirect after successful login** — Jahia relative URL (e.g., `/home.html`)
320
- - **Maximum authentication lifetime** — max age of IdP session before re-authentication
321
- 5. Select optional flags: Force authentication, Passive authentication, Sign authentication request, Requires signed assertions.
322
- 6. Select **Binding type** (e.g., `HTTP-POST`).
323
- 7. Click **Save**.
324
-
325
- After saving, **Open Service Provider Metadata** becomes available for downloading SP metadata to share with the IdP.
326
-
327
- ### Configuration file example
328
-
329
- SAML config is stored per-site in `karaf/etc`:
330
-
331
- ```properties
332
- # SAML Configuration file - autogenerated
333
- siteKey = digitall
334
- enabled = true
335
- identityProviderMetadata = ...
336
- relyingPartyIdentifier = test-local
337
- serverLocation = http://localhost:8080
338
- keyStore = ...
339
- keyStoreAlias = saml2clientconfiguration
340
- keyStorePass = changeit
341
- privateKeyPass = changeit
342
- incomingTargetUrl = /home.callback.saml
343
- postLoginPath = /home.html
344
- maximumAuthenticationLifetime = 86400
345
- forceAuth = false
346
- passive = false
347
- requireSignedAssertions = false
348
- signAuthnRequest = true
349
- bindingType = urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST
350
- keyStoreType = PKCS12
351
- mapperName = jcrOAuthProvider
352
- ```
353
-
354
- ### Mapping users from IdP
355
-
356
- 1. On the **SAML2 Settings** page, click **Mappers**.
357
- 2. Expand and activate the **JCR Authentication Provider** section.
358
- 3. In **Field from connector**, select IdP fields (e.g., Login).
359
- 4. In **Field from provider**, select Jahia fields (e.g., Login username mandatory).
360
- 5. Click **Save**.
361
-
362
- ### Triggering SAML login
363
-
364
- Users are redirected to the IdP by calling `*.connect.saml?siteKey={sitekey}`:
365
-
366
- ```
367
- http://localhost/sites/mySite/home.connect.saml?siteKey=mySite
368
- ```
369
-
370
- You can also use a form component (included with the module) or embed the redirect in a JSP/template.
371
-
372
- **Redirect to a specific page after login** using the `redirect` query param:
373
-
374
- ```
375
- /sites/mySite/home.connect.saml?siteKey=mySite&redirect=/sites/mySite/about-us.html
376
- ```
377
-
378
- The `siteKey` param is required unless the server name is mapped to a site in Jahia (even then, using `siteKey` is recommended).
379
-
380
- **JSP form example:**
381
-
382
- ```jsp
383
- <c:if test="${not renderContext.loggedIn}">
384
- <form action="${renderContext.mainResource.node.name}.connect.saml" method="GET">
385
- <input type="hidden" name="siteKey" value="${renderContext.site.siteKey}"/>
386
- <input type="hidden" name="redirect"
387
- value="${renderContext.mainResource.nodePath}.${renderContext.mainResource.templateType}"/>
388
- <input type="submit" value="${currentNode.displayableName}">
389
- </form>
390
- </c:if>
391
- ```
392
-
393
- Redirect URLs are filtered: only local URLs (no hostname) are accepted to prevent XSS.
394
-
395
- ### Private pages and SAML authentication
396
-
397
- By default Jahia returns HTTP 404 for private pages to hide their existence. To redirect unauthenticated users to the SAML IdP instead, configure `jahia.properties`:
398
-
399
- ```properties
400
- # authorizationError returns 401 for guests, 403 for authenticated users without permission
401
- protectedResourceAccessStrategy=authorizationError
402
- ```
403
-
404
- Then customize the 401 error page to include a link to `*.connect.saml`. For sites where the site root itself is private:
405
-
406
- ```bash
407
- cp error_401.jsp <tomcat_home>/webapps/ROOT/errors/sites/<mySite>/error_401.jsp
408
- ```
409
-
410
- **Common SAML authentication error causes:**
411
-
412
- - Missing or wrong `siteKey` query param
413
- - Missing or unreadable SAML configuration file for the site
414
- - Wrong keystore or certificate configuration
415
- - Mismatched Relying Party Identifier
416
-
417
- Clients always receive HTTP 400 on authentication failure — check server logs for the root cause.
418
-
419
- ---
420
-
421
- ## UPA — User Password Authentication Module
422
-
423
- ### What it adds over default auth
424
-
425
- The UPA module provides a custom username/password login flow with optional multi-factor authentication (MFA via email code). It replaces the default Jahia login page with a configurable React-based UI. It is not a full IdP replacement — prefer SAML or OpenID for enterprise SSO.
426
-
427
- **Important:** Once the API module is enabled, it overrides the default login URL for **all sites** on the platform. The legacy `/cms/login` endpoint remains active and must be blocked at the reverse proxy for full security.
428
-
429
- ### Prerequisites
430
-
431
- - Jahia 8.2.3 or higher
432
- - GraphQL DXM Provider module (included in Jahia core)
433
- - For MFA email code: working SMTP server and users must have `j:email` set
434
- - For clusters: sticky sessions or distributed sessions required
435
-
436
- ### Installation
437
-
438
- Two modules from the [Jahia Store](https://store.jahia.com/):
439
-
440
- 1. **API module** (`user-password-authentication-api-X.Y.Z.jar`) — provides GraphQL APIs; install and enable platform-wide
441
- 2. **UI module** (`user-password-authentication-ui-X.Y.Z.tgz`) — React-based login form; install and enable per site
442
-
443
- ### Setup: login URL provider
444
-
445
- Configure where users are redirected when accessing protected resources (choose one option):
446
-
447
- **Option A (recommended):** Set `loginUrl` in OSGi console (`org.jahia.modules.upa` configuration):
448
- - Navigate to **Tools > OSGi Console > OSGi > Configuration**
449
- - Set `loginUrl` to the login page URL (e.g., `/sites/mySite/login.html`)
450
- - The URL must include the site key for email template resolution
451
-
452
- **Option B:** Install the community *Site Settings - Customize Error Pages* module.
453
-
454
- **Option C:** Implement a custom `LoginUrlProvider` interface.
455
-
456
- After configuring the URL provider, create the login page in Page Builder, add the **UPA Authentication** component (`upaui:authentication`), publish the page, and verify it is accessible without authentication.
457
-
458
- ### Authentication flow
459
-
460
- 1. User accesses protected content → redirected to login page
461
- 2. User enters username/email and password
462
- 3. If MFA is enabled: user receives a code by email and enters it in a verification form
463
- 4. On success: user is redirected to the originally requested resource
464
-
465
- MFA follows a two-step model per factor:
466
- - **Prepare** — generates and sends the challenge (e.g., email code)
467
- - **Verify** — validates the user's response
468
-
469
- ### Customization
470
-
471
- **Custom MFA email template:** Create a view with selector `mailCodeView` at higher priority for `upa:mfaMailCode` node type. Use `{{CODE}}` placeholder for the verification code. Use inline CSS (email client compatibility).
472
-
473
- **Custom UI:** Only the API module is strictly required. Copy the [UI module source](https://github.com/Jahia/user-password-authentication/tree/main/ui/) and customize it. The GraphQL APIs are available at `/modules/graphql-dxm-provider/tools/graphql-workspace.jsp`.
474
-
475
- **Custom MFA factor:** Implement the `MfaFactorProvider` interface (experimental, subject to change).
476
-
477
- ### Known limitations
478
-
479
- | Limitation | Detail |
480
- |-----------|--------|
481
- | Global login URL | `loginUrl` applies platform-wide, across all sites |
482
- | Cluster lockout | Max failed attempts per cluster node: `((T-1) × N) + 1` where T = tries configured, N = node count |
483
- | Multiple providers | Only one custom `LoginUrlProvider` can be active at a time |
484
- | Legacy endpoint | `/cms/login` bypasses UPA; must be blocked at the proxy level |