Skip to content

Split big config files into smaller ones #1099

Description

@Toastbrot236

After some feedback from new people who have tried to set up their own Refresh instances, we have started to consider to split larger config files (especially refreshGameServer.json and integrations.json) into smaller, multiple files.

Even if there were actual documentation on the config options, these two config files would still be kind of confusing due to their large number of options, and they've gotten more confusing the more options we've added on top. Also, we should avoid nesting too much (e.g. role perms), as these files are (mainly) supposed to be edited using text editors, and with too much nesting, it can easily get difficult to keep track of which config comes from where and what it does in context.

One idea on how to split this up would be to have a config file for every individual integration (SMTP, Discord etc), one file for each role's perms, and then split the main config further into separate categories, one file per category (e.g. game settings, auth settings, instance metadata etc.)

Maybe we should also look into having configs in sub-directories. Maybe also just have all configs in a refreshConfigs sub-directory of BUNKUM_DATA_FOLDER and have further sub-directories there; would more obviously show instance owners that their configs are now in sub-directories.

This would be a first real usecase for our Bunkum fork (#1094), since Bunkum's current config system is limited to the point where migrating settings across config files is not really possible.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions