Skip to content

IBX-12652: Added the headless.documentation_url setting - #2146

Open
GrabowskiM wants to merge 2 commits into
6.0from
IBX-12652-headless-documentation-url
Open

GrabowskiM wants to merge 2 commits into
6.0from
IBX-12652-headless-documentation-url

Conversation

@GrabowskiM

@GrabowskiM GrabowskiM commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor
🎫 Issue IBX-12652

Related PRs:

Description:

Adds a headless.documentation_url siteaccess setting next to headless.configuration_url, exposed as HeadlessConfigurationInterface::getDocumentationUrl().

The "headless mode not configured" screens in Page Builder and Site Context link to the documentation on connecting a front-end application. Both had their own hardcoded URL; they now read it from this setting, so there is a single default and installations (e.g. SaaS) can point it to their own guide.

  • The default is https://doc.ibexa.co/, marked @todo until the headless documentation page is published.
  • Like the other URL getters, an empty value resolves to null; the consuming screens then hide their documentation links.
ibexa:
    system:
        admin_group:
            headless:
                documentation_url: 'https://doc.example.com/headless'

For QA:

Covered by the related PRs: with headless enabled and no preview URL, the Page Builder placeholder and the location View tab link to the configured documentation URL, and hide those links when it is set to ~.

Documentation:

New headless.documentation_url siteaccess setting (URL of the documentation on connecting a front-end application, defaults to the Ibexa documentation).

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@GrabowskiM
GrabowskiM requested a review from a team October 6, 2026 14:40
return $this->getUrl('headless.configuration_url', $scope);
}

public function getDocumentationUrl(?string $scope = null): ?string

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can it be ever null?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably it shouldn't ever (at least I always call it with argument), but that's convention from all other methods in this class

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't call it convention - if we are sure the parameter cannot be null we should skip it. Unless you see a good reason not to. @tbialcz please advice here.

*/
public function getConfigurationUrl(?string $scope = null): ?string;

public function getDocumentationUrl(?string $scope = null): ?string;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can it be ever null?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It can be null on purpose: null means the current siteaccess and it goes straight to ConfigResolver::getParameter() and that's how page-builder and site-context call it

@tbialcz

tbialcz commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Looks good for me.
Could you add a test for documentation_url: ~? It's the only URL with a non-null default, so ~ is the only way to hide the links.

…fault

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sonarqubecloud

sonarqubecloud Bot commented Oct 7, 2026

Copy link
Copy Markdown

@adriendupuis adriendupuis left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doc is ready at https://doc.ibexa.co/en/saas/content_management/pages/headless_page_builder/

ibexa/page-builder#629 can target it.
It could specifically target the "Configuration" section but this section will stay on top of page.

Comment on lines +101 to +102
# @todo replace with the headless documentation URL once the page is published
ibexa.site_access.config.default.headless.documentation_url: 'https://doc.ibexa.co/'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# @todo replace with the headless documentation URL once the page is published
ibexa.site_access.config.default.headless.documentation_url: 'https://doc.ibexa.co/'
ibexa.site_access.config.default.headless.documentation_url: 'https://doc.ibexa.co/en/saas/content_management/pages/headless_page_builder/'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants