Is your feature request related to a problem? Please describe.
Certain elements of a sql file need to be dynamic, i.e. partition count, replicas, format and etc, to support different deployment environments. However, the current plugin does not support variable substitution. This is supported in ksqlDB, see [https://docs.ksqldb.io/en/latest/how-to-guides/substitute-variables/#use-a-variable](Using Variables), but requires access to the ksql DB API and/or CLI.
Describe the solution you'd like
One thought is to allow for specifying a mapping file that allows the plugin to DEFINE and UNDEFINE the mappings during the sql creation/deployment. I.e.
pipelineExecute --mapping-file environment.json
This would need to be supported from the maven package and via local execution. The result would be baked into the ksql,
When running locally using the variable substitution as described in the link above works as expected. However, our use case is to bundle all of the sql files and store them in a repository. This file is than pulled down and deployed in a separate step using the pipelineExecute command via the maven functionality, to multiple environments. There is no opportunity to influence the contents of this sql file once they've been zipped. This means that the sql files contain hard coded values that are the same regardless of environment deployed to.
Is your feature request related to a problem? Please describe.
Certain elements of a sql file need to be dynamic, i.e. partition count, replicas, format and etc, to support different deployment environments. However, the current plugin does not support variable substitution. This is supported in ksqlDB, see [https://docs.ksqldb.io/en/latest/how-to-guides/substitute-variables/#use-a-variable](Using Variables), but requires access to the ksql DB API and/or CLI.
Describe the solution you'd like
One thought is to allow for specifying a mapping file that allows the plugin to
DEFINE
andUNDEFINE
the mappings during the sql creation/deployment. I.e.pipelineExecute --mapping-file environment.json
This would need to be supported from the maven package and via local execution. The result would be baked into the ksql,
Which would produce (based on the file that follows)
The mapping file, json defined here, is a set of key-value-pairs
Describe alternatives you've considered
When running locally using the variable substitution as described in the link above works as expected. However, our use case is to bundle all of the sql files and store them in a repository. This file is than pulled down and deployed in a separate step using the
pipelineExecute
command via the maven functionality, to multiple environments. There is no opportunity to influence the contents of this sql file once they've been zipped. This means that the sql files contain hard coded values that are the same regardless of environment deployed to.