flagsmith icon indicating copy to clipboard operation
flagsmith copied to clipboard

Deprecate Flagsmith on Flagsmith, add per install config manager

Open kyle-ssg opened this issue 3 years ago • 6 comments
trafficstars

  • [ ] 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 avatar Jan 06 '22 11:01 kyle-ssg

@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.

matthewelwell avatar Dec 01 '22 10:12 matthewelwell

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 avatar Nov 16 '23 18:11 matthewelwell

@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.

novakzaballa avatar Nov 16 '23 19:11 novakzaballa

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.

zachaysan avatar Nov 23 '23 19:11 zachaysan

I've opened a PR to support the feature import export workflow.

I've also created three new tickets to continue on the strategy.

  1. https://github.com/orgs/Flagsmith/projects/2/views/11?pane=issue&itemId=46219940
  2. https://github.com/orgs/Flagsmith/projects/2/views/11?pane=issue&itemId=46220546
  3. https://github.com/orgs/Flagsmith/projects/2/views/11?pane=issue&itemId=46221008

zachaysan avatar Nov 30 '23 16:11 zachaysan

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

zachaysan avatar Apr 22 '24 14:04 zachaysan