[IMPLEMENTED] Add support for app templates

Hi Sebastian,

I have an idea to somehow provide a way to add application templates (or how it is called default “samples” in the dashboard). If understand correctly currently it is hardcoded in middlewares.

For example, the portainer has a simple JSON file and in administration, you can change it to any file (via URL = GitHub).

For example here you provide an update for the Identity template and in this way, it can be easy to distribute even for non updated instance.

Also, I can imagine it may in future work like “marketplace” with app templates but it is required to much work (with a similar model as google play for “paid” templates).

Makes sense, the templates could just be stored in a github repository or so.

Should be straight forward to implement :slight_smile:

1 Like

Problem

The current system has a few limitations:

  1. It only supports a subset of what is possible through an easy interface. Theoretically you can create everything using code, but it is not that easy.
  2. There is not progress tracking or so, which is a problem for large samples. In case the system or node is restarted while a large sample is integrated you cannot restart or continue.
  3. You need to modify the code to make custom samples. It would be normal for a CMS, but for a headless CMS nobody is doing that.
  4. You can use the samples only for new apps, e.g. you cannot add a sample to an existing app. For example when you have a article system and also need comments or whatever.

Therefore I want to get rid of the current system.

Solution

My idea is to use the CLI for that:

https://docs.squidex.io/02-documentation/developer-guides/automation-tools#synchronize-all-app-settings-beta

The CLI has this sync feature, which stores all settings in the file system. Futhermore the CLI supports virtual file systems, so a file system can be…

  • A ZIP Archive
  • An actual file system
  • An git repository.

The idea is to use a git repository for that and to store samples there. A sample is then just a list of files, that can be imported to an existing app. There will be an official repository for that and the Squidex UI will probably have a menu item for that to show all the samples from this repository.

Usage

User

As a sample user you have to do the following things:

  1. Create a new app.
  2. Download the CLI
  3. Configure the CLI
  4. Import the Sample, e.g. with.
sq.exe sync in https://github.com/squidex/templates/applications/blog

Perhaps there is a way to streamline that and to provide a script for this.

The big advantage is that we can also create samples for datasets. There is a lot of common data that is used in a lot of applications…

  • Languages
  • Currencies
  • Cities / Capitals
  • Countries.

We can create templates for that and you can get this data with a single command into your app.

Creator

If you create a template you have to do the following things:

  1. Create a new app.
  2. Clone the official repository.
  3. Create a folder in the repository.
  4. Export your app to the repository.
  5. Create a pull request.

Todos

There are a few things to do until we can make this happen:

  1. Create the repository
  2. Extend the CLI to create a README.md file for an export.
  3. Add a new menu item to the UI for all templates.
2 Likes

I have started with the template repository:

https://github.com/Squidex/templates

This topic was automatically closed after 2 days. New replies are no longer allowed.