frankframework icon indicating copy to clipboard operation
frankframework copied to clipboard

Git Polling classloader

Open jjansenvr opened this issue 1 year ago • 3 comments

Related Problem or Business Case

Getting your Frank!Configuration directly from git. No artifact, xml directly from git.

Describe the Feature

Can we create a class loader that listens to a change in a git repo to obtain a new config version.

repo --> webhook or polling

Collaboration with External Companies

No, community resolution only

jjansenvr avatar Aug 30 '24 09:08 jjansenvr

In what scenario would this be used? It is generally speaking good practice to use immutable artifacts. Even though the configuration is versioned, this would suggest a workflow where F!F + configurations combination is not versioned. This only works when configurations can work completely isolated from other configurations and have no requirements/dependencies on F!F instance level settings/components.

MLenterman avatar Sep 18 '24 09:09 MLenterman

It would also be nice to define revisions in the manage configurations page.

I image a form while adding the URL like this:

Repository:   [ https:// | ssh:// ]
Revision:     [ commit_sha, branch_name, tag ]

In the details page, it could be possible to switch to a next or previous version.

Filter:       [ tag: v2.1.x ] 

2.1.1         ( ) 
2.1.2         (*)
2.1.3         ( )

In production, someone could switch to the next tag as update.

I think this would also be a more secure way to approach this for @MLenterman.

The same could then also be configured with properties, as a declarative alternative, but that would require a restart.

philipsens avatar Dec 11 '24 11:12 philipsens

The same could then also be configured with properties, but that would require a restart, which might defeat the purpose a bit.

The ability to change this runtime would be against the immutable principle of a Docker image.

With a proper high availability configuration set on your k8s deployment, there is basically no down-time when switching revisions in a config map, with respect to the immutable principle.

Laurens-makel avatar Apr 14 '25 21:04 Laurens-makel