flagsmith
flagsmith copied to clipboard
Deprecate Flagsmith on Flagsmith, add per install config manager
- [ ] Create 3 new Flagsmith Environments: EE, Open-Source and SaaS
- [ ] When building the Docker images for the above, bake the JSON file for the Environment Flags into the Docker image
- [ ] When starting the application, read this JSON file in and use that for defaults
- [ ] Add a Django table to override flag booleans and values
- [ ] Provide Django admin access to above table
- [ ] Update docs
@kyle-ssg currently it seems as though self hosted installations default to point to our staging environment in the Flagsmith Website project. I'm not sure how this is happening. For now, can we default to the new environment I have created for this purpose so that people don't change things there affecting self hosted customers:
MXSepNNQEacBBzxAU7RagJ
Customers should currently be setting up their flagsmith on flagsmith configuration but until that point, we don't want changes to our active environments affecting self hosted customers.
Having talked to @zachaysan about this in a bit more detail, we are concerned with the approach defined above, given that it is essentially redefining the Flags in another table. An alternative solution we are thinking on is to add the ability to export / import a given environment and we can then provide a (public perhaps?) link to export our Self-Hosted Defaults environment for all self hosted users of Flagsmith that want control over their own flags. This export functionality would need to include the functionality to filter / exclude by tag, and we would tag our flags with some kind of 'self-hosted export' tag.
Sidebar is that this export / import functionality would be valuable in other scenarios too, particularly if we can also filter by e.g. created date.
We should handle different types of import too - e.g. 'overwrite conflicts', 'ignore conflicts', 'full replace'
@matthewelwell Once I was recently assigned to this, I was planning to implement it by doing something similar, exporting an environment document, and loading it in a similar way do it with the offline-mode, but considering slight differences, since it should rather behave like a fallback value, like we do it with the default flags, right? I don't think we need to elaborate too much further this changes, at least not for this particular use case.
The work that @matthewelwell mentioned is now in review, but I'm going to leave this ticket as still "in progress" since we need a frontend for the changes, which @novakzaballa and I can work together on next week.
I've opened a PR to support the feature import export workflow.
I've also created three new tickets to continue on the strategy.
- https://github.com/orgs/Flagsmith/projects/2/views/11?pane=issue&itemId=46219940
- https://github.com/orgs/Flagsmith/projects/2/views/11?pane=issue&itemId=46220546
- https://github.com/orgs/Flagsmith/projects/2/views/11?pane=issue&itemId=46221008
I believe this ticket should be closed now since most of the information in it has been superseded by the work I've linked to thus far. In terms of next steps I think this ticket is would go a long way: https://github.com/orgs/Flagsmith/projects/2/views/11?pane=issue&itemId=46219940