At the moment we support intialization tasks for the following services:
Flyway
Liquibase
Liquibase Mongo
It makes sense to expand coverage to other extension too. For example:
Redis
OpenFGA
Authzed
more
However, internalization is not always as simple as providing an json, yaml, sql file etc. Initialization logic often needs to be expressed programmatically. So, we should be able to allow users write code that consume a client to the target service and performs the initialization. Those tasks should be treated in a way similar to how we currently treat Flyway / Liquibase (including the kubernetes bits).
Additionally, it would be great if we had:
[ ] CLI support to list and invoke these tasks.
[ ] Dev UI support
[ ] Ability to share initialization tasks (from other jars)
[ ] Ability to enable disable task by name.
Implementation ideas
We could have an annotation e.g. @Initialization that could be added to a method that expresses the initialization logic. The method may accept arguments that correspond to the clients needed for the initialization.
At runtime we could call these methods in the initialization phase.
Description
At the moment we support intialization tasks for the following services:
It makes sense to expand coverage to other extension too. For example:
However, internalization is not always as simple as providing an json, yaml, sql file etc. Initialization logic often needs to be expressed programmatically. So, we should be able to allow users write code that consume a client to the target service and performs the initialization. Those tasks should be treated in a way similar to how we currently treat Flyway / Liquibase (including the kubernetes bits).
Additionally, it would be great if we had:
Implementation ideas
We could have an annotation e.g.
@Initialization
that could be added to a method that expresses the initialization logic. The method may accept arguments that correspond to the clients needed for the initialization.At runtime we could call these methods in the initialization phase.