Basic Properties

Use assignment to register a config value email = 'hello' cliPath = ['p1', 'p2']

Complex Properties

Multiple ways to register complex properties complex.my_var.nested = 'webtau' // direct nested assignment complex { // scope definition for multiple assignment abc = 'abc_value' EDF = 'edf_value' subNested { nested = 'nested_nested' } } anotherComplex = [nested: 'vn'] // map based assignment anotherComplex.anotherNested = 'an'

Environments

Use environments block to define environment specific values and overrides email = 'hello' server = 'my-server' environments { dev { email = 'dev-hello' } beta { email = 'beta' } prod { server = 'prod-server' } } Environment specific complex object overrides complex = [id1: 'value1', id2: 'value2'] environments { dev { complex.id1 = 'value1-dev' complex.id3 = 'value3-dev' } beta { complex.id3 = 'value3-beta' } } webtau --env=dev

Personas

Use personas block to define persona specific values and overrides email = 'hello' personas { Alice { email = 'alice-email' } Bob { email = 'bob-email' } } Persona specific complex object overrides cliEnv = [ COMMON: 'common value', ANOTHER_COMMON: 'another common value'] personas { Alice { cliEnv.CREDENTIALS = 'alice-token' cliEnv.EXTRA_ALICE = 'extra alice' } Bob { cliEnv.CREDENTIALS = 'bob-token' cliEnv.EXTRA_BOB = 'extra bob' } }

Persona Inside Environment

Use personas block inside specific environment within environments block to have persona override for an environment cliEnv = [ COMMON: 'common value', ANOTHER_COMMON: 'another common value'] personas { Alice { cliEnv.CREDENTIALS = 'alice-token' // default Alice's specific values cliEnv.EXTRA_ALICE = 'extra alice' } Bob { cliEnv.CREDENTIALS = 'bob-token' cliEnv.EXTRA_BOB = 'extra bob' } } environments { dev { personas { Alice { cliEnv.CREDENTIALS = 'alice-dev-token' // Alice's overrides for dev environment cliEnv.EXTRA_ALICE = 'extra dev alice' cliEnv.EXTRA_DEV_V = 'extra dev alice v' } Bob { cliEnv.CREDENTIALS = 'bob-dev-token' cliEnv.EXTRA_BOB = 'extra dev bob' } } } beta { personas { Alice { cliEnv.CREDENTIALS = 'alice-beta-token' cliEnv.EXTRA_ALICE = 'extra beta alice' cliEnv.EXTRA_BETA_V = 'extra beta alice v' } Bob { cliEnv.CREDENTIALS = 'bob-beta-token' cliEnv.EXTRA_BOB = 'extra beta bob' } } } }