Skip to content

Expose the start.conf backups, linbo.iso and the example configs the server already holds #39

Description

@TomlDev

Three things the school console offers over /srv/linbo have no equivalent in the API, so a client built on the API cannot reach them. All three are content the server already writes and holds; what is missing is a way to read it.

Checked against all 127 routes of 7.4.11 (/openapi.json): iso and example match nothing, and the only backup routes are the three under /v1/linbo/images/{image_name}/….

1. Backups of a start.conf

Deleting or saving a group leaves a backup next to it:

/srv/linbo/.start.conf.<group>.bak.<epoch>

A server that has been in use for a while accumulates a good number of them, and they are the only way back after a bad edit. The console reaches them through its own generic file-backup service (lmFileBackups.show('/srv/linbo/start.conf.' + group)), which is a webui feature rather than an API one.

Useful would be the same shape the image backups already have:

  • GET /v1/linbo/startconfs/{group_id}/backups — list them, with timestamp and size
  • POST /v1/linbo/startconfs/{group_id}/backups/{timestamp}/restore
  • DELETE /v1/linbo/startconfs/{group_id}/backups/{timestamp}

2. linbo.iso

/srv/linbo/linbo.iso is built on the server and the console offers it for download (/lmn/download/linbo.iso, again a webui route). There is no API route that serves it, so an API client cannot offer the download at all.

GET /v1/linbo/iso would be enough.

3. The example start.conf files

/srv/linbo/examples/ ships a set of ready-made layouts:

start.conf.win10-efi   start.conf.ubuntu-efi   start.conf.win10-ubuntu-efi
start.conf.opensuse    start.conf.ubuntu2004   ... (12 files)
image.postsync   image.prestart   win10.image.reg   win11.global.reg

The console offers the start.conf.* ones as templates when creating a group (GET /api/lmn/linbo4/config/examples/{name}) and the .reg/.postsync/.prestart ones as starting content in the image sidecar editor. Neither is reachable through the API.

  • GET /v1/linbo/examples — list them
  • GET /v1/linbo/examples/{name} — return one

Why it matters

These are exactly the places where a client on the API is forced to be worse than the console for no reason on the server side: the files exist, are already maintained by linuxmuster, and only lack a route. The image backups show the pattern is already accepted; the other two are plain reads.

Happy to send PRs for any of the three if the shapes above look right.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions