Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Import from file will be gone - [Deprecated] Import & Export #6306

Closed
nejco opened this issue Feb 22, 2024 · 5 comments
Closed

Import from file will be gone - [Deprecated] Import & Export #6306

nejco opened this issue Feb 22, 2024 · 5 comments

Comments

@nejco
Copy link

nejco commented Feb 22, 2024

Describe the feature request

Previously with [Deprecated] Import & Export we had an option to import all the data at the startup from a file. We are using it via quarkus-unleash usage. With new Environment Import & Export this feature is missing.

Background

Another use case we have for this feature is to be able to start clean environment from source for testing. We don't want to manually create all unleash resources every time. Synching from another environment is also a bad option since someone might have tempered it.

Is there any way to achieve this after [Deprecated] Import & Export will be deleted (planned for v6)? I know we can do it via API manually with API but this will be hard to maintain and it is very error prone. It will also be very hard to determine when unleash is actually stable with all resources created.

Solution suggestions

Keep import from file feature planned to be deprecated and make sure it supports all new features.

@ivarconr
Copy link
Member

Thanks for raising this @nejco!

This is why we have deprecated this feature a year already, to collect feedback. In general this is not a widely adopted capability among Unleash Users. The "old import" was poorly written hard to maintain, and did not solve important needs for Unleash users. It was best suited for an "init state", but was really poor at synchronizing state over time.

We are using it via quarkus-unleash usage.

Can you explain briefly how this work? Is it to configure Unleash with a set up pre-defined feature flags? Are you setting up more than flags?

In general I do not see big challenges adding a file-import variant for the new import as well.

Another use case we have for this feature is to be able to start clean environment from source for testing. We don't want to manually create all unleash resources every time.

For automated testing we now generally advice to use Unleash Edge in offline mode.

Does that make sense?

@nejco
Copy link
Author

nejco commented Mar 6, 2024

We just began using unleash across our platforms and for now we use: features, feature tags, tag types, client applications, context fields, feature strategies, settings (frontendApiOrigins). But we could use more features later on.

Can you explain briefly how this work? Is it to configure Unleash with a set up pre-defined feature flags? Are you setting up more than flags?

Quarkus configures required dev services when it is in local or development mode. It basically starts Docker container for each service and configures it with some ENV variables and/or files. This way developers don't need to do any manual configurations / imports when developing locally and could also be used for other testing environments. More here

In general I do not see big challenges adding a file-import variant for the new import as well.

This should be ok for our use case if all features/settings are included in either imports or configuration with ENV variables. Then we are not limited in using any new or existing features.

For automated testing we now generally advice to use Unleash Edge in offline mode.

For unit testing we have a framework that mocks whole unleash, so offline mode would not help us here. The environments I an referring to are real (close to production) and we use them to run end to end tests of web and mobile apps on them and also manual tests by our internal teams. Here we also might test changing some features (or settings regarding it like rollout) so we need full unleash with UI.

@ivarconr
Copy link
Member

Thanks for your detailed feedback @nejco. We will consider this as part of our move to v6. I cannot guarantee that we will solve everything the same way as today.

@ivarconr ivarconr mentioned this issue Mar 11, 2024
14 tasks
Copy link

stale bot commented Apr 10, 2024

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@daveleek
Copy link
Contributor

Hello @nejco and thanks for bringing this up!
If you don't mind, I'd like to ask you a few followup questions around your usage of this feature and it's current env variables.

I've understood this as that you want to start Unleash "from scratch", then import and get to a known state, then do some testing. Does this mean wiping the instance before importing? Or are you starting a fresh instance/db every time?

There are two env variables that are likely to be removed/replaced:

  • IMPORT_DROP_BEFORE_IMPORT
  • IMPORT_KEEP_EXISTING
    Are you using any of these? are they important to you?

@linear linear bot closed this as completed Jun 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

3 participants