Question on Adaptive Form Fragments | Community
Skip to main content
Level 4
March 17, 2026
Solved

Question on Adaptive Form Fragments

  • March 17, 2026
  • 3 replies
  • 34 views

We have recently started using Fragments in our Adaptive forms. I noticed that when I create a new fragment, the jcr property (fd:version) defaults to 1.1. However, fragments from the Core form component examples project are set to 2.1. What controls this version assignment? creating a fragment with 1.1 version does show it under /assets.

 

Additionally, after creating a fragment, the components available are all sourced from fd/af/components/. How can I configure this to point to my project instead? I also do not see a template being selected during fragment creation, so I’m unsure how the allowed components are determined.

Thanks,

Abhishek

Best answer by AmitVishwakarma

Hi ​@kolluax 

1. Why fd:version is 1.1 vs 2.1 on fragments

  • fd:version is the Adaptive Forms version flag:
    • 1.1 -> Foundation Adaptive Forms (AF v1, components under /libs/fd/af/components/...).
    • 2.1 -> Core Components Adaptive Forms (AF v2, components under /libs/core/fd/components/form/... etc).
  • What actually controls it?
    The template / creation wizard you use:
    • If the fragment is created using a Foundation-based fragment template, the wizard sets fd:version = 1.1.
    • If it's created using a Core Components–based fragment template, it sets fd:version = 2.1 (like the examples project).
  • Why examples show 2.1 and yours show 1.1?
    Your "new fragment" is being created with the old AF v1 fragment flow, while the examples use the AF v2 (Core Components) fragment template.
    Result:
    • 1.1 fragments behave as legacy/foundation fragments and are not treated as AF v2 fragments.
    • Only 2.1 fragments are listed in AF v2 fragment pickers / core-component forms.
  • Fix:
    • Create fragments using the Core Components fragment template / wizard (e.g. "Adaptive Form Fragment (Core Components)" or equivalent in your environment). Those fragments will automatically get fd:version = 2.1 and behave like the examples.

2. Why you only see components from fd/af/components and how to use your project components
Right now your fragment is AF v1, so:

  • The fragment's root panel/layout uses a Foundation policy, whose "Allowed Components" are all under fd/af/components/.…
  • That's why the side panel only shows components from fd/af/components.

To point this to your project components, use the same pattern as Sites/core components:

Step 1 – Create proxy components in your project

For each core form component you want to expose, create a proxy component, for example:

/apps/<your-project>/components/forms/textinput
sling:resourceSuperType = "core/fd/components/form/textinput/v1/textinput"
jcr:title = "Text Input (Project)"
componentGroup = "Your Project – Forms"

Repeat for other components you need.

Step 2 – Attach them via the fragment/template policy

Even though the fragment wizard doesn't ask for a template, it internally uses one. You configure allowed components on that template's policy:

  • Go to Tools -> General -> Templates.
  • Locate the fragment template used for your forms:
    • AF v1 fragment template for Foundation fragments, or
    • AF v2 fragment template for Core components fragments.
  • Open the template, select the Form Container / root layout and open the Design dialog (Policy).
  • In Allowed Components, add your project component groups (e.g. "Your Project – Forms") and optionally remove the old fd/af/components groups.

After saving:

  • New fragments created with that template will show your project components in the side panel.
  • If you're moving to Core Components, do this on the AF v2 fragment template and use only your proxy components, not /libs/fd/af/components.

3. How to make it behave exactly like the examples

  • Enable / use Core Components–based fragment creation
    Use the same AF v2 fragment template the examples use, so new fragments get fd:version = 2.1.
  • Create proxy components under /apps/<your-project>/components/... with sling:resourceSuperType pointing to the core form components.
  • Update the AF v2 fragment template policy to:
    • Allow only your project's proxy components.
    • Optionally hide/disable legacy fd/af/components.

3 replies

Adobe Employee
March 18, 2026

Hi ​@kolluax,

Thanks for the detailed questions. Let me summarize what’s happening and how you can align it with your project.

1. Why do some fragments have fd:version=1.1 and others 2.x?

The fd:version on a fragment (or form) is driven by the template’s initial content, not by the Core Components examples package itself.

  • When you use the default foundation fragment template
    /libs/fd/af/templateForFragment/defaultFragmentTemplate
    the initial/jcr:content/guideContainer carries a v1 value like 1.1, so new fragments inherit that.

  • Core Components–based (AFv2) fragment templates ship with a 2.x fd:version on their initial guideContainer. That’s why fragments from the Core Form Component examples show 2.1.

You can see the expected Core Components fragment flow in the public docs:

If you want new fragments to default to 2.x, update the fragment template you’re using:

  • Edit
    /conf/<your-project>/settings/wcm/templates/<your-fragment-template>/initial/jcr:content/guideContainer
  • Set fd:version to an AFv2 value (e.g. 2.0 or 2.1).
  • New fragments created from that template will then pick up the updated fd:version.

2. Why do fragments only show fd/af/components and not our project components?

The components you can add inside a fragment are determined by:

  1. The template’s policy for the fragment’s guideContainer, and
  2. The resource types allowed in that policy (which, by default, are the OOTB core components under /libs/fd/af/components/...).

To point fragments to your project components, the recommended pattern is:

  1. Create proxy components in your project that wrap the Forms Core Components, following the standard proxy pattern used for Sites:
    Proxy component pattern – Core Components guidelines

  2. Create a fragment template using the Adaptive Form Fragment template type in the Template Console and enable it. (On newer archetypes this is available OOTB; otherwise, you can model yours on the examples template.)
    Internal reference (how examples are wired and embedded in projects).

  3. Update the template’s policy (Template Editor → Structure → select Form Container → Policy):

    • Add your proxy components (e.g. /apps/<your-project>/components/forms/...) to Allowed Components.
    • Optionally remove direct references to /libs/fd/af/components/... so authors only see your project layer.

Once this is done, any fragment created from that template will show your project component group instead of just fd/af/components.

3. Where does the fragment template actually come into play?

Even if the wizard doesn’t make it obvious, fragment creation is always based on a template:

If you currently see only the foundation fragment template (defaultFragmentTemplate) in the wizard, that explains both:

  • fd:version=1.1
  • Components coming only from the legacy/foundation side.

In that case, the fix is:

  • Create a Core Components fragment template under /conf/<your-project> using the fragment template type and/or
  • Base it on the sample AFv2 fragment template from Core Components examples (if you have those installed), and
  • Enable it so it appears in the fragment creation wizard.

Thanks
Pranay

AmitVishwakarma
Community Advisor
AmitVishwakarmaCommunity AdvisorAccepted solution
Community Advisor
March 18, 2026

Hi ​@kolluax 

1. Why fd:version is 1.1 vs 2.1 on fragments

  • fd:version is the Adaptive Forms version flag:
    • 1.1 -> Foundation Adaptive Forms (AF v1, components under /libs/fd/af/components/...).
    • 2.1 -> Core Components Adaptive Forms (AF v2, components under /libs/core/fd/components/form/... etc).
  • What actually controls it?
    The template / creation wizard you use:
    • If the fragment is created using a Foundation-based fragment template, the wizard sets fd:version = 1.1.
    • If it's created using a Core Components–based fragment template, it sets fd:version = 2.1 (like the examples project).
  • Why examples show 2.1 and yours show 1.1?
    Your "new fragment" is being created with the old AF v1 fragment flow, while the examples use the AF v2 (Core Components) fragment template.
    Result:
    • 1.1 fragments behave as legacy/foundation fragments and are not treated as AF v2 fragments.
    • Only 2.1 fragments are listed in AF v2 fragment pickers / core-component forms.
  • Fix:
    • Create fragments using the Core Components fragment template / wizard (e.g. "Adaptive Form Fragment (Core Components)" or equivalent in your environment). Those fragments will automatically get fd:version = 2.1 and behave like the examples.

2. Why you only see components from fd/af/components and how to use your project components
Right now your fragment is AF v1, so:

  • The fragment's root panel/layout uses a Foundation policy, whose "Allowed Components" are all under fd/af/components/.…
  • That's why the side panel only shows components from fd/af/components.

To point this to your project components, use the same pattern as Sites/core components:

Step 1 – Create proxy components in your project

For each core form component you want to expose, create a proxy component, for example:

/apps/<your-project>/components/forms/textinput
sling:resourceSuperType = "core/fd/components/form/textinput/v1/textinput"
jcr:title = "Text Input (Project)"
componentGroup = "Your Project – Forms"

Repeat for other components you need.

Step 2 – Attach them via the fragment/template policy

Even though the fragment wizard doesn't ask for a template, it internally uses one. You configure allowed components on that template's policy:

  • Go to Tools -> General -> Templates.
  • Locate the fragment template used for your forms:
    • AF v1 fragment template for Foundation fragments, or
    • AF v2 fragment template for Core components fragments.
  • Open the template, select the Form Container / root layout and open the Design dialog (Policy).
  • In Allowed Components, add your project component groups (e.g. "Your Project – Forms") and optionally remove the old fd/af/components groups.

After saving:

  • New fragments created with that template will show your project components in the side panel.
  • If you're moving to Core Components, do this on the AF v2 fragment template and use only your proxy components, not /libs/fd/af/components.

3. How to make it behave exactly like the examples

  • Enable / use Core Components–based fragment creation
    Use the same AF v2 fragment template the examples use, so new fragments get fd:version = 2.1.
  • Create proxy components under /apps/<your-project>/components/... with sling:resourceSuperType pointing to the core form components.
  • Update the AF v2 fragment template policy to:
    • Allow only your project's proxy components.
    • Optionally hide/disable legacy fd/af/components.
Amit Vishwakarma - Adobe Commerce Champion 2025 | 16x Adobe certified | 4x Adobe SME
kolluaxAuthor
Level 4
March 18, 2026

Thanks ​@Pranay_M ​@AmitVishwakarma . This is really helpful and detailed. Appreciate all the support you are offering through this community.