Pipeline stage to test that AM's FBC (file-based config) can be upgraded (and then used with AM successfully) after every commit.  This stage will fail if required openam-config-upgrader rules are missing from fbc/master.groovy.


Deployments of (file-based) AM require an upgrade mechanism.  The openam-config-upgrader (released within the can upgrade the FBC configuration files.  To ensure that the upgrader rules are kept up to date the fbc-config-upgrader-tests stage has been added to the postCommit pipeline.  The premise is that a known baseline FBC can be upgraded, using the tool and rules, and then used to successfully start up the latest version of AM.  The rules should be idempotent; so running multiple times will produce the same end result.

See  for the implementation.

Test failure is an indication to the code committer that a new file based configuration upgrade rule is required on master.  (There is a dependency on completion of )

Slides for the DoD can be found here


The test has its own deployer UpgradedFBCAmDeployer which can be called by the Tests' CLI.  The AM-7.0.0 baseline configuration is in the OpenAM git repository along with scripts to generate a new configuration if/when required.  At the time of writing there is one upgrade rule to set the configuration version.


N.B. the setup requires an external datastore i.e. not embedded datastore

Running the tests


defaultenv = fbc

am_full_url =
amadmin_pwd = password
am_root_dn =  dc=openam,dc=forgerock,dc=org

Test specific data is handled by the .temper/config file.

$ temper functional-tests --deploy OpenAM-7.0.0-SNAPSHOT.war --hostname --verbose --groups and\(and\(or\(idrepo,smoke\),not\(ssoadm\)\), not\(mock-server\)\) --file-based-upgrade


$ pwd

$ OPENAM_VERSION=7.0.0-SNAPSHOT COMMAND="functional-tests --groups and\(and\(or\(idrepo,smoke\),not\(ssoadm\)\), not\(mock-server\)\)" docker-compose -f docker-compose.yml -f docker-compose.overrides.fbc-upgrade.yml up

Test specific data is handled by .yml and .temperconfig files.

PR Build

CI Build Configuration

Inflexible aspects of the implementation

Because this test implementation relies on a static known FBC the setup can be quite brittle.  The baseline FBC does make use of some placeholders however there are a some significant hard coded values.  Please refer to baseline configuration generation scripts and resources for its definitive status.  The significant values are:

Significant hard coded values ^

Unfinished business