Best way to provide customize the number of fields in the web application

We have been doing the analysis for the new web application which would provide Admin user the feature of fields Management/configuration. The purpose of providing the feature is to make the application dynamic and configurable as per the client requirement.

Fields management for the application can be provided in the settings menu which will allow the Admin user to do the configuration. By default, there are some static fields which cannot be removed from the application.

Fields management would have static fields (Cannot delete or edit) and dynamic fields (Can Enable.Disable,delete,restore and edit). Admin can also add new dynamic fields (upto some number) for the application which can be used by the users in the application.

For implementing the Fields management, one option is to provide different version logic which would allow the Admin to create different version of the fields management (Static & Dynamic fields) for the application.

Based on the version which is in published/approved state, fields of that versions would be displayed in the application for the new request while old versions application requests will be unaffected by the new one.

Please suggest the best way/practice to implement such logic for simplifying the customization of fields as per requirements.