Skip to main content

Cookie settings

We use cookies to ensure the basic functionalities of the website and to enhance your online experience. You can choose for each category to opt-in/out whenever you want.

Essential

Preferences

Analytics and statistics

Marketing

Include static pages (help section) in the GraphQL API

Avatar: AH AH

Is your feature request related to a problem? Please describe.
Currently the Decidim API does not cover the /pages section of the website which is generally used to create help sections or other static content on Decidim websites.

Describe the solution you'd like
I would like the /pages section to be covered by the API. The provided fields are very similar to the pages component within the participatory spaces but this would have to be extended with the topic information.

The query I would expect to work would be something like this at the root level of the site:

{ staticContent { pages { topic { id, title(locale: "en") { text } }, id, title(locale: "en") { text }, body(locale: "en") { text }, createdAt, updatedAt } } }

Also, I would like the topics to be queryable through the API as follows:

{ staticContent { topics { id, title(locale: "en") { text }, pages { id, title(locale: "en") { text } } } } }

And additionally it would be nice to have if the "pages" query would allow filtering by topics as follows:

{ staticContent { pages(topic: 123) { id, title(locale: "en") { text } } } }

And pages without a topic:

{ staticContent { pages(topic: false) { id, title(locale: "en") { text } } } }

The "topic" filter would have the following alternative values:

  • null (default) - return all pages, no matter if they have topic or not
  • (number) - return pages with this defined topic
  • (array[number]) - return pages with these defined topics
  • true - return pages with any topic defined
  • false - return pages without topic defined

Describe alternatives you've considered
Currently the content can be fetched by scraping the /pages section and parsing the details from there. But this can be problematic at times when the layout is customized, i.e. the same scraping and parsing code may not work automatically for all Decidim instances.

Additional context
I needed to backup some content in the /pages section (that is about to change) and wrote a script for that particular website. This script could be more easily reusable in case the content was available through the API.

Does this issue could impact on users private data?
No.

Funded by
We can take this to our backlog if accepted.

Comment

Confirm

Please log in

The password is too short.

Share