@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.
- package/CHANGELOG.md +8 -0
- package/dist/claude/.claude/rules/jahia.md +13 -40
- package/dist/claude/.claude/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/claude/.claude/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/claude/.claude/skills/jahia-dev-build-component/SKILL.md +15 -7
- package/dist/claude/.claude/skills/jahia-dev-create-page-template/SKILL.md +59 -21
- package/dist/claude/.claude/skills/jahia-dev-create-template-set/SKILL.md +20 -47
- package/dist/claude/.claude/skills/jahia-dev-create-view/SKILL.md +3 -3
- package/dist/claude/.claude/skills/jahia-dev-review-cnd/SKILL.md +79 -0
- package/dist/claude/.claude/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
- package/dist/claude/.claude/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
- package/dist/claude/.claude/skills/jahia-dev-site-review/SKILL.md +70 -0
- package/dist/claude/.claude/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
- package/dist/claude/.claude/skills/jahia-dev-start-local/SKILL.md +18 -26
- package/dist/claude/CLAUDE.md +14 -41
- package/dist/codex/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/codex/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/codex/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
- package/dist/codex/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
- package/dist/codex/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
- package/dist/codex/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
- package/dist/codex/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
- package/dist/codex/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
- package/dist/codex/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
- package/dist/codex/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
- package/dist/codex/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
- package/dist/codex/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
- package/dist/codex/AGENTS.md +15 -42
- package/dist/copilot/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/copilot/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/copilot/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
- package/dist/copilot/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
- package/dist/copilot/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
- package/dist/copilot/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
- package/dist/copilot/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
- package/dist/copilot/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
- package/dist/copilot/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
- package/dist/copilot/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
- package/dist/copilot/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
- package/dist/copilot/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
- package/dist/copilot/AGENTS.md +15 -42
- package/dist/cursor/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/cursor/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/cursor/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
- package/dist/cursor/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
- package/dist/cursor/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
- package/dist/cursor/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
- package/dist/cursor/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
- package/dist/cursor/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
- package/dist/cursor/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
- package/dist/cursor/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
- package/dist/cursor/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
- package/dist/cursor/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
- package/dist/cursor/.cursor/rules/jahia.mdc +13 -40
- package/dist/gemini/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/gemini/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/gemini/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
- package/dist/gemini/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
- package/dist/gemini/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
- package/dist/gemini/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
- package/dist/gemini/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
- package/dist/gemini/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
- package/dist/gemini/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
- package/dist/gemini/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
- package/dist/gemini/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
- package/dist/gemini/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
- package/dist/gemini/AGENTS.md +15 -42
- package/dist/gemini/GEMINI.md +2 -2
- package/dist/index.js +13 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/opencode/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/opencode/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
- package/dist/opencode/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
- package/dist/opencode/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
- package/dist/opencode/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
- package/dist/opencode/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
- package/dist/opencode/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
- package/dist/opencode/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
- package/dist/opencode/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
- package/dist/opencode/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
- package/dist/opencode/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
- package/dist/opencode/AGENTS.md +15 -42
- package/dist/windsurf/.windsurf/rules/jahia.md +13 -40
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/windsurf/.windsurf/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/windsurf/.windsurf/skills/jahia-dev-build-component/SKILL.md +15 -7
- package/dist/windsurf/.windsurf/skills/jahia-dev-create-page-template/SKILL.md +59 -21
- package/dist/windsurf/.windsurf/skills/jahia-dev-create-template-set/SKILL.md +20 -47
- package/dist/windsurf/.windsurf/skills/jahia-dev-create-view/SKILL.md +3 -3
- package/dist/windsurf/.windsurf/skills/jahia-dev-review-cnd/SKILL.md +79 -0
- package/dist/windsurf/.windsurf/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
- package/dist/windsurf/.windsurf/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
- package/dist/windsurf/.windsurf/skills/jahia-dev-site-review/SKILL.md +70 -0
- package/dist/windsurf/.windsurf/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
- package/dist/windsurf/.windsurf/skills/jahia-dev-start-local/SKILL.md +18 -26
- package/dist/windsurf/AGENTS.md +15 -42
- package/package.json +1 -1
- package/dist/claude/.claude/skills/jahia/SKILL.md +0 -144
- package/dist/claude/.claude/skills/jahia-content/SKILL.md +0 -157
- package/dist/claude/.claude/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/claude/.claude/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/claude/.claude/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/claude/.claude/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/claude/.claude/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/claude/.claude/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/claude/.claude/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/claude/.claude/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/claude/.claude/skills/jahia-dev/SKILL.md +0 -124
- package/dist/claude/.claude/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/claude/.claude/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/claude/.claude/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/claude/.claude/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/claude/.claude/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/claude/.claude/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/claude/.claude/skills/jahia-dev-define-content-type/SKILL.md +0 -536
- package/dist/claude/.claude/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/claude/.claude/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/claude/.claude/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/claude/.claude/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/claude/.claude/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/claude/.claude/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/claude/.claude/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/claude/.claude/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/claude/.claude/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/claude/.claude/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/claude/.claude/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/claude/.claude/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/claude/.claude/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/claude/.claude/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/claude/.claude/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/claude/.claude/skills/jahia-review-java/references/code-review-output.md +0 -121
- package/dist/codex/.agents/skills/jahia/SKILL.md +0 -144
- package/dist/codex/.agents/skills/jahia-content/SKILL.md +0 -157
- package/dist/codex/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/codex/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/codex/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/codex/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/codex/.agents/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/codex/.agents/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/codex/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/codex/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/codex/.agents/skills/jahia-dev/SKILL.md +0 -124
- package/dist/codex/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/codex/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/codex/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/codex/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/codex/.agents/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/codex/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/codex/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
- package/dist/codex/.agents/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/codex/.agents/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/codex/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/codex/.agents/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/codex/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/codex/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/codex/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/codex/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/codex/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/codex/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/codex/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/codex/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/codex/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/codex/.agents/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/codex/.agents/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/codex/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
- package/dist/copilot/.agents/skills/jahia/SKILL.md +0 -144
- package/dist/copilot/.agents/skills/jahia-content/SKILL.md +0 -157
- package/dist/copilot/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/copilot/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/copilot/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/copilot/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/copilot/.agents/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/copilot/.agents/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/copilot/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/copilot/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/copilot/.agents/skills/jahia-dev/SKILL.md +0 -124
- package/dist/copilot/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/copilot/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/copilot/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/copilot/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/copilot/.agents/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/copilot/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/copilot/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
- package/dist/copilot/.agents/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/copilot/.agents/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/copilot/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/copilot/.agents/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/copilot/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/copilot/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/copilot/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/copilot/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/copilot/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/copilot/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/copilot/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/copilot/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/copilot/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/copilot/.agents/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/copilot/.agents/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/copilot/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
- package/dist/cursor/.agents/skills/jahia/SKILL.md +0 -144
- package/dist/cursor/.agents/skills/jahia-content/SKILL.md +0 -157
- package/dist/cursor/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/cursor/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/cursor/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/cursor/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/cursor/.agents/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/cursor/.agents/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/cursor/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/cursor/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/cursor/.agents/skills/jahia-dev/SKILL.md +0 -124
- package/dist/cursor/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/cursor/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/cursor/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/cursor/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/cursor/.agents/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/cursor/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/cursor/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
- package/dist/cursor/.agents/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/cursor/.agents/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/cursor/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/cursor/.agents/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/cursor/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/cursor/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/cursor/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/cursor/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/cursor/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/cursor/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/cursor/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/cursor/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/cursor/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/cursor/.agents/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/cursor/.agents/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/cursor/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
- package/dist/gemini/.agents/skills/jahia/SKILL.md +0 -144
- package/dist/gemini/.agents/skills/jahia-content/SKILL.md +0 -157
- package/dist/gemini/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/gemini/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/gemini/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/gemini/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/gemini/.agents/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/gemini/.agents/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/gemini/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/gemini/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/gemini/.agents/skills/jahia-dev/SKILL.md +0 -124
- package/dist/gemini/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/gemini/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/gemini/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/gemini/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/gemini/.agents/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/gemini/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/gemini/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
- package/dist/gemini/.agents/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/gemini/.agents/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/gemini/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/gemini/.agents/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/gemini/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/gemini/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/gemini/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/gemini/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/gemini/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/gemini/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/gemini/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/gemini/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/gemini/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/gemini/.agents/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/gemini/.agents/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/gemini/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
- package/dist/opencode/.agents/skills/jahia/SKILL.md +0 -144
- package/dist/opencode/.agents/skills/jahia-content/SKILL.md +0 -157
- package/dist/opencode/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/opencode/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/opencode/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/opencode/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/opencode/.agents/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/opencode/.agents/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/opencode/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/opencode/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/opencode/.agents/skills/jahia-dev/SKILL.md +0 -124
- package/dist/opencode/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/opencode/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/opencode/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/opencode/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/opencode/.agents/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/opencode/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/opencode/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
- package/dist/opencode/.agents/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/opencode/.agents/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/opencode/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/opencode/.agents/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/opencode/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/opencode/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/opencode/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/opencode/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/opencode/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/opencode/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/opencode/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/opencode/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/opencode/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/opencode/.agents/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/opencode/.agents/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/opencode/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
- package/dist/windsurf/.windsurf/skills/jahia/SKILL.md +0 -144
- package/dist/windsurf/.windsurf/skills/jahia-content/SKILL.md +0 -157
- package/dist/windsurf/.windsurf/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/windsurf/.windsurf/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/windsurf/.windsurf/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/windsurf/.windsurf/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/windsurf/.windsurf/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/windsurf/.windsurf/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/windsurf/.windsurf/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/windsurf/.windsurf/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/windsurf/.windsurf/skills/jahia-dev/SKILL.md +0 -124
- package/dist/windsurf/.windsurf/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/windsurf/.windsurf/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/windsurf/.windsurf/skills/jahia-dev-define-content-type/SKILL.md +0 -536
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/windsurf/.windsurf/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/windsurf/.windsurf/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/windsurf/.windsurf/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/windsurf/.windsurf/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/windsurf/.windsurf/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/windsurf/.windsurf/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/windsurf/.windsurf/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/windsurf/.windsurf/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/windsurf/.windsurf/skills/jahia-review-java/references/code-review-output.md +0 -121
|
@@ -1,465 +0,0 @@
|
|
|
1
|
-
# Jahia JCR API Reference
|
|
2
|
-
|
|
3
|
-
## Table of contents
|
|
4
|
-
1. [JCR Java API — sessions](#jcr-java-api--sessions)
|
|
5
|
-
2. [CRUD operations](#crud-operations)
|
|
6
|
-
3. [Auto-splitting nodes](#auto-splitting-nodes)
|
|
7
|
-
4. [Property interceptors](#property-interceptors)
|
|
8
|
-
5. [RESTful JCR access](#restful-jcr-access)
|
|
9
|
-
6. [JAX-RS custom endpoints](#jax-rs-custom-endpoints)
|
|
10
|
-
7. [Actions (legacy)](#actions-legacy)
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## JCR Java API — sessions
|
|
15
|
-
|
|
16
|
-
Everything in the JCR happens within a session, opened for **one user**, **one workspace** (`default`/`EDIT` or `live`/`LIVE`), and **one language**. Non-internationalized properties are readable without a language; i18n properties require the session language.
|
|
17
|
-
|
|
18
|
-
### Getting a session
|
|
19
|
-
|
|
20
|
-
**Inside an Action** — the session is passed as a parameter:
|
|
21
|
-
|
|
22
|
-
```java
|
|
23
|
-
public ActionResult doExecute(HttpServletRequest req, RenderContext renderContext,
|
|
24
|
-
Resource resource, JCRSessionWrapper session,
|
|
25
|
-
Map<String, List<String>> parameters, URLResolver urlResolver) throws Exception {
|
|
26
|
-
// use session directly
|
|
27
|
-
}
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
**From a service** — use `JCRTemplate`:
|
|
31
|
-
|
|
32
|
-
```java
|
|
33
|
-
JCRTemplate.getInstance().doExecuteWithSystemSession(
|
|
34
|
-
null, // user (null = system)
|
|
35
|
-
Constants.EDIT_WORKSPACE, // "default"
|
|
36
|
-
Locale.ENGLISH,
|
|
37
|
-
new JCRCallback<Object>() {
|
|
38
|
-
public Object doInJCR(JCRSessionWrapper session) throws RepositoryException {
|
|
39
|
-
// ... your code here
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
);
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
Use `Constants.LIVE_WORKSPACE` (`"live"`) to operate on published content.
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## CRUD operations
|
|
51
|
-
|
|
52
|
-
### Create a node
|
|
53
|
-
|
|
54
|
-
```java
|
|
55
|
-
JCRTemplate.getInstance().doExecuteWithSystemSession(null, Constants.EDIT_WORKSPACE, Locale.ENGLISH,
|
|
56
|
-
new JCRCallback<Object>() {
|
|
57
|
-
public Object doInJCR(JCRSessionWrapper session) throws RepositoryException {
|
|
58
|
-
JCRNodeWrapper parent = session.getNode("/sites/mySite/contents/news");
|
|
59
|
-
String nodeTitle = "My node";
|
|
60
|
-
JCRNodeWrapper newNode = parent.addNode(nodeTitle, "jnt:news");
|
|
61
|
-
newNode.setProperty("jcr:title", nodeTitle);
|
|
62
|
-
newNode.setProperty("desc", "my node content");
|
|
63
|
-
session.save(); // MUST save — changes are local until then
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
);
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
Steps: open session → get parent → `parent.addNode(name, nodeType)` → set properties → `session.save()`.
|
|
71
|
-
|
|
72
|
-
### Read a node
|
|
73
|
-
|
|
74
|
-
```java
|
|
75
|
-
JCRNodeWrapper node = session.getNode("/sites/mySite/contents/news");
|
|
76
|
-
String title = node.getPropertyAsString("jcr:title");
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Update a property
|
|
80
|
-
|
|
81
|
-
```java
|
|
82
|
-
JCRNodeWrapper node = session.getNode("/sites/mySite/contents/news/my-article");
|
|
83
|
-
node.setProperty("jcr:title", "Updated title");
|
|
84
|
-
session.save();
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### Delete a node
|
|
88
|
-
|
|
89
|
-
```java
|
|
90
|
-
JCRNodeWrapper node = session.getNode("/sites/mySite/contents/news/my-article");
|
|
91
|
-
node.remove();
|
|
92
|
-
session.save();
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Common pitfall
|
|
96
|
-
|
|
97
|
-
**Always call `session.save()`** before your callback returns. Unsaved changes exist only in the local session context and are lost when the session closes.
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
## Auto-splitting nodes
|
|
102
|
-
|
|
103
|
-
Auto-splitting avoids flat node collections becoming too large. Enable it by adding the `jmix:autoSplitFolders` mixin and specifying a split configuration.
|
|
104
|
-
|
|
105
|
-
### Split configuration syntax
|
|
106
|
-
|
|
107
|
-
Semicolon-separated levels; each level is comma-separated tokens:
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
<level1>;<level2>;<level3>
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
Token types:
|
|
114
|
-
- `constant,<name>` — fixed folder name
|
|
115
|
-
- `property,<propertyName>` — value of the given property (`jcr:creator`, `jcr:nodename`, etc.)
|
|
116
|
-
- `firstChars,<propertyName>,<count>` — first N characters of property value
|
|
117
|
-
- `substring,<propertyName>,<start>-<end>` — zero-based substring
|
|
118
|
-
- `date,<datePropertyName>,<SimpleDateFormat pattern>` — e.g. `date,jcr:created,yyyy`
|
|
119
|
-
|
|
120
|
-
### Example: split by author → year → month
|
|
121
|
-
|
|
122
|
-
```java
|
|
123
|
-
import org.jahia.services.content.JCRAutoSplitUtils;
|
|
124
|
-
|
|
125
|
-
JCRNodeWrapper filesNode = session.getNode("/shared/files");
|
|
126
|
-
JCRAutoSplitUtils.enableAutoSplitting(
|
|
127
|
-
filesNode,
|
|
128
|
-
"property,jcr:creator;date,jcr:created,yyyy;date,jcr:created,MM",
|
|
129
|
-
"jnt:contentList" // node type for split folders
|
|
130
|
-
);
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
Result: `/shared/files/sergiy/2020/07/report.pdf`
|
|
134
|
-
|
|
135
|
-
### Enable from business rules
|
|
136
|
-
|
|
137
|
-
```
|
|
138
|
-
rule "Auto-split user activities node on creation"
|
|
139
|
-
salience 101
|
|
140
|
-
when
|
|
141
|
-
A new node "activities" is created
|
|
142
|
-
The node has a parent
|
|
143
|
-
- the parent has the type jnt:user
|
|
144
|
-
then
|
|
145
|
-
Enable auto-splitting for subnodes of the node into folders of type jnt:contentList
|
|
146
|
-
using configuration "date,jcr:created,yyyy;date,jcr:created,MM"
|
|
147
|
-
end
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## Property interceptors
|
|
153
|
-
|
|
154
|
-
Interceptors catch all `get` and `set` operations on JCR properties. They can transform or reject values. Use cases: text filtering/moderation, auto-tagging, URL rewriting.
|
|
155
|
-
|
|
156
|
-
### Implementation pattern
|
|
157
|
-
|
|
158
|
-
```java
|
|
159
|
-
@Component(immediate = true)
|
|
160
|
-
public class PostFilteringInterceptor extends BaseInterceptor {
|
|
161
|
-
|
|
162
|
-
private JCRStoreService jcrStoreService;
|
|
163
|
-
|
|
164
|
-
@Activate
|
|
165
|
-
public void start() {
|
|
166
|
-
setRequiredTypes(Collections.singleton("String")); // only String properties
|
|
167
|
-
setNodeTypes(Collections.singleton("jnt:post")); // only on jnt:post nodes
|
|
168
|
-
jcrStoreService.addInterceptor(this);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
@Deactivate
|
|
172
|
-
public void stop() {
|
|
173
|
-
jcrStoreService.removeInterceptor(this);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
@Reference
|
|
177
|
-
public void setJcrStoreService(JCRStoreService jcrStoreService) {
|
|
178
|
-
this.jcrStoreService = jcrStoreService;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
@Override
|
|
182
|
-
public Value beforeSetValue(JCRNodeWrapper node, String name,
|
|
183
|
-
ExtendedPropertyDefinition definition, Value originalValue)
|
|
184
|
-
throws RepositoryException {
|
|
185
|
-
String content = originalValue.getString();
|
|
186
|
-
if (content == null || content.isEmpty()) return originalValue;
|
|
187
|
-
String filtered = filter(content);
|
|
188
|
-
return !filtered.equals(content)
|
|
189
|
-
? node.getSession().getValueFactory().createValue(filtered)
|
|
190
|
-
: originalValue;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
@Override
|
|
194
|
-
public Value[] beforeSetValues(JCRNodeWrapper node, String name,
|
|
195
|
-
ExtendedPropertyDefinition definition, Value[] originalValues)
|
|
196
|
-
throws RepositoryException {
|
|
197
|
-
Value[] result = new Value[originalValues.length];
|
|
198
|
-
for (int i = 0; i < originalValues.length; i++) {
|
|
199
|
-
result[i] = beforeSetValue(node, name, definition, originalValues[i]);
|
|
200
|
-
}
|
|
201
|
-
return result;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
private String filter(String content) {
|
|
205
|
-
// implement filtering logic
|
|
206
|
-
return content;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
**Important**: Interceptors are disabled for unlocalized sessions. Declare as an OSGi `@Component(immediate=true)` and register/unregister via `JCRStoreService`.
|
|
212
|
-
|
|
213
|
-
---
|
|
214
|
-
|
|
215
|
-
## RESTful JCR access
|
|
216
|
-
|
|
217
|
-
> **Deprecated** — the REST API is deprecated and will be removed in a future version. Use the GraphQL API instead.
|
|
218
|
-
|
|
219
|
-
### Base context
|
|
220
|
-
|
|
221
|
-
```
|
|
222
|
-
/modules/api/jcr/v1/{workspace}/{language}/
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
All URIs use `<basecontext>` = `/modules/api/jcr/v1`.
|
|
226
|
-
|
|
227
|
-
### URI encoding rules
|
|
228
|
-
|
|
229
|
-
- `:` in property/node names → `__` (e.g., `jcr:uuid` → `jcr__uuid`)
|
|
230
|
-
- Same-name siblings index → `--N` suffix (e.g., second `bar` child → `bar--2`)
|
|
231
|
-
|
|
232
|
-
### Entry points
|
|
233
|
-
|
|
234
|
-
| Pattern | Description |
|
|
235
|
-
|---------|-------------|
|
|
236
|
-
| `/{workspace}/{lang}/nodes/{uuid}[/children\|mixins\|properties\|versions][/{name}]` | Access node by UUID |
|
|
237
|
-
| `/{workspace}/{lang}/paths{/absolute/path}` | Access node by path |
|
|
238
|
-
| `/{workspace}/{lang}/types/{type}` | List nodes by type (disabled by default) |
|
|
239
|
-
| `/{workspace}/{lang}/query` | JCR-SQL2 query endpoint (disabled by default) |
|
|
240
|
-
| `/{workspace}/{lang}/version` | API version info |
|
|
241
|
-
|
|
242
|
-
### Authentication
|
|
243
|
-
|
|
244
|
-
- Browser session: log in to Jahia, session is inherited
|
|
245
|
-
- Non-browser: `POST /cms/login?doLogin=true&restMode=true&username=X&password=Y&redirectActive=false` (cookie-based)
|
|
246
|
-
- HTTP Basic auth: `Authorization: Basic <base64(user:pass)>`
|
|
247
|
-
- Personal API token: `Authorization: APIToken <token>`
|
|
248
|
-
|
|
249
|
-
### HTTP operations
|
|
250
|
-
|
|
251
|
-
```
|
|
252
|
-
GET <basecontext>/default/en/nodes/<uuid> → read node
|
|
253
|
-
GET <basecontext>/default/en/nodes/<uuid>/children → list children
|
|
254
|
-
GET <basecontext>/default/en/nodes/<uuid>/properties → list properties
|
|
255
|
-
PUT <basecontext>/default/en/nodes/<uuid>/children/foo → create/update child node
|
|
256
|
-
PUT <basecontext>/default/en/nodes/<uuid>/properties/jcr__title → create/update property
|
|
257
|
-
DELETE <basecontext>/default/en/nodes/<uuid> → delete node
|
|
258
|
-
POST <basecontext>/default/en/nodes/<uuid>/moveto/newName → rename node
|
|
259
|
-
POST <basecontext>/default/en/paths/users/root/files → upload file (multipart)
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
### Example: create a child node
|
|
263
|
-
|
|
264
|
-
```
|
|
265
|
-
PUT /modules/api/jcr/v1/default/en/nodes/27d671f6.../children/foo
|
|
266
|
-
Content-Type: application/hal+json
|
|
267
|
-
|
|
268
|
-
{
|
|
269
|
-
"type": "jnt:bigText",
|
|
270
|
-
"properties": { "text": { "value": "FOO!" } }
|
|
271
|
-
}
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
### Example: add a mixin with properties
|
|
275
|
-
|
|
276
|
-
```
|
|
277
|
-
PUT /modules/api/jcr/v1/default/en/nodes/eae598a3.../mixins/jmix__rating
|
|
278
|
-
Content-Type: application/hal+json
|
|
279
|
-
|
|
280
|
-
{
|
|
281
|
-
"properties": {
|
|
282
|
-
"j__lastVote": {"value": "-1"},
|
|
283
|
-
"j__nbOfVotes": {"value": "100"},
|
|
284
|
-
"j__sumOfVotes": {"value": "1000"}
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
### Batch delete properties
|
|
290
|
-
|
|
291
|
-
```
|
|
292
|
-
DELETE /modules/api/jcr/v1/default/en/nodes/eae598a3.../properties
|
|
293
|
-
Body: ["j__sumOfVotes", "j__nbOfVotes"]
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
### Security filter configuration for REST
|
|
297
|
-
|
|
298
|
-
```properties
|
|
299
|
-
# karaf/etc/org.jahia.bundles.api.authorization-myapi.yml
|
|
300
|
-
permission.myApiAccess.api=jcrestapi
|
|
301
|
-
permission.myApiAccess.nodeType=nt:myNodeType1,nt:myNodeType2
|
|
302
|
-
permission.myApiAccess.pathPattern=/sites/mysite/nodes/.*
|
|
303
|
-
# Optional: require a specific permission
|
|
304
|
-
permission.myApiAccess.requiredPermission=jcr:write
|
|
305
|
-
# Or require a token scope
|
|
306
|
-
permission.myApiAccess.scope=myApp
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
### Query endpoint (disabled by default)
|
|
310
|
-
|
|
311
|
-
Enable via `jahia.find.disabled=false` in `jahia.properties`. Supports prepared queries registered as Spring `PreparedQuery` beans.
|
|
312
|
-
|
|
313
|
-
```
|
|
314
|
-
POST /modules/api/jcr/v1/default/en/query
|
|
315
|
-
{
|
|
316
|
-
"query": "SELECT * FROM [nt:base]",
|
|
317
|
-
"limit": 10,
|
|
318
|
-
"offset": 1
|
|
319
|
-
}
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
Or using a named prepared query:
|
|
323
|
-
|
|
324
|
-
```
|
|
325
|
-
POST /modules/api/jcr/v1/default/en/query
|
|
326
|
-
{
|
|
327
|
-
"queryName": "foo",
|
|
328
|
-
"namedParameters": { "nodeType": "nt:%" }
|
|
329
|
-
}
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
---
|
|
333
|
-
|
|
334
|
-
## JAX-RS custom endpoints
|
|
335
|
-
|
|
336
|
-
Jahia bundles Jersey (JAX-RS 2) with an OSGi extender pattern. Register your endpoint via `pom.xml` bundle directives:
|
|
337
|
-
|
|
338
|
-
```xml
|
|
339
|
-
<plugin>
|
|
340
|
-
<groupId>org.apache.felix</groupId>
|
|
341
|
-
<artifactId>maven-bundle-plugin</artifactId>
|
|
342
|
-
<extensions>true</extensions>
|
|
343
|
-
<configuration>
|
|
344
|
-
<instructions>
|
|
345
|
-
<Jahia-Depends>default,...</Jahia-Depends>
|
|
346
|
-
<JAX-RS-Alias>/myendpoint</JAX-RS-Alias>
|
|
347
|
-
<JAX-RS-Application>com.example.MyApplication</JAX-RS-Application>
|
|
348
|
-
</instructions>
|
|
349
|
-
</configuration>
|
|
350
|
-
</plugin>
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
Your endpoint will be accessible at `/modules/myendpoint/...`. Jahia authentication propagates automatically — the session credentials are available in the endpoint.
|
|
354
|
-
|
|
355
|
-
Your `Application` class should extend Jersey's `ResourceConfig`:
|
|
356
|
-
|
|
357
|
-
```java
|
|
358
|
-
@ApplicationPath("/")
|
|
359
|
-
public class MyApplication extends ResourceConfig {
|
|
360
|
-
public MyApplication() {
|
|
361
|
-
packages("com.example.resources");
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
```
|
|
365
|
-
|
|
366
|
-
---
|
|
367
|
-
|
|
368
|
-
## Actions (legacy)
|
|
369
|
-
|
|
370
|
-
> **Deprecated** — Jahia recommends using GraphQL for new development. Actions are still usable for simple isolated operations.
|
|
371
|
-
|
|
372
|
-
Actions are triggered via `POST` to `/{nodePath}.{actionName}.do`.
|
|
373
|
-
|
|
374
|
-
### Minimal action implementation
|
|
375
|
-
|
|
376
|
-
```java
|
|
377
|
-
@Component(service = RateContent.class)
|
|
378
|
-
public class RateContent extends Action {
|
|
379
|
-
|
|
380
|
-
@Activate
|
|
381
|
-
public void activate() {
|
|
382
|
-
setName("rate");
|
|
383
|
-
// setRequireAuthenticatedUser(false); // allow unauthenticated
|
|
384
|
-
// setRequiredPermission("addBlogEntry");
|
|
385
|
-
// setRequiredWorkspace("default");
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
@Override
|
|
389
|
-
public ActionResult doExecute(HttpServletRequest req, RenderContext renderContext,
|
|
390
|
-
Resource resource, JCRSessionWrapper session,
|
|
391
|
-
Map<String, List<String>> parameters, URLResolver urlResolver) throws Exception {
|
|
392
|
-
// ... business logic
|
|
393
|
-
return new ActionResult(HttpServletResponse.SC_OK, null, responseJson);
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
```
|
|
397
|
-
|
|
398
|
-
### URL pattern
|
|
399
|
-
|
|
400
|
-
```
|
|
401
|
-
POST /cms/render/{workspace}/{lang}/{node/path}.{actionName}.do
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
### Key action parameters (hidden form fields)
|
|
405
|
-
|
|
406
|
-
| Parameter | Purpose |
|
|
407
|
-
|-----------|---------|
|
|
408
|
-
| `jcrNodeType` | Type of node to create |
|
|
409
|
-
| `jcrRedirectTo` | Redirect URL after action |
|
|
410
|
-
| `jcrNewNodeOutputFormat` | Output format (default: `html`) |
|
|
411
|
-
| `jcrMethodToCall` | `post` (required for tokenized forms) |
|
|
412
|
-
| `jcrCaptcha` | Captcha response value |
|
|
413
|
-
|
|
414
|
-
### CSRF guard (Jahia 8.0.1+)
|
|
415
|
-
|
|
416
|
-
All actions from Jahia pages have CSRF protection automatically. Actions called from outside a Jahia context (external systems) will fail unless excluded. See the knowledge-base article on CSRF errors for how to exclude an action.
|
|
417
|
-
|
|
418
|
-
GET-based actions are blocked by default since 8.0.1. Allow explicitly:
|
|
419
|
-
|
|
420
|
-
```java
|
|
421
|
-
// In Spring XML: requiredMethods="GET,POST"
|
|
422
|
-
```
|
|
423
|
-
|
|
424
|
-
### Tokenized forms for live-workspace content creation
|
|
425
|
-
|
|
426
|
-
Wrap forms in `<template:tokenizedForm>` to allow guest users to submit content:
|
|
427
|
-
|
|
428
|
-
```jsp
|
|
429
|
-
<template:tokenizedForm>
|
|
430
|
-
<form action="${url.base}${boundComponent.path}.addComment.do" method="post">
|
|
431
|
-
<input type="hidden" name="jcrNodeType" value="jnt:post"/>
|
|
432
|
-
<input type="hidden" name="jcrRedirectTo" value="${url.base}${renderContext.mainResource.node.path}"/>
|
|
433
|
-
<!-- ... fields ... -->
|
|
434
|
-
</form>
|
|
435
|
-
</template:tokenizedForm>
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
**Warning**: Tokenized forms execute with system user — they bypass all permission checks. Validate inputs inside the action itself.
|
|
439
|
-
|
|
440
|
-
### Chaining actions
|
|
441
|
-
|
|
442
|
-
```html
|
|
443
|
-
<form action="mynode.chain.do" method="post">
|
|
444
|
-
<input type="hidden" name="chainOfAction" value="mail,redirect"/>
|
|
445
|
-
</form>
|
|
446
|
-
```
|
|
447
|
-
|
|
448
|
-
### File upload in actions
|
|
449
|
-
|
|
450
|
-
```java
|
|
451
|
-
final FileUpload fu = (FileUpload) req.getAttribute(FileUpload.FILEUPLOAD_ATTRIBUTE);
|
|
452
|
-
DiskFileItem inputFile = fu.getFileItems().get("fileField");
|
|
453
|
-
```
|
|
454
|
-
|
|
455
|
-
### BackgroundAction interface
|
|
456
|
-
|
|
457
|
-
Implement `BackgroundAction` to allow the action to be called from rules or GWT UI:
|
|
458
|
-
|
|
459
|
-
```java
|
|
460
|
-
public class SendAsNewsletterAction extends Action implements BackgroundAction {
|
|
461
|
-
public void executeBackgroundAction(JCRNodeWrapper node) {
|
|
462
|
-
// typically does a local POST to the action URL using a token
|
|
463
|
-
}
|
|
464
|
-
}
|
|
465
|
-
```
|