openwallet-foundation / owl-agent-test-harness

Aries agent test framework, with agent backchannel support
https://aries-interop.info
Apache License 2.0
60 stars 66 forks source link

Add the AIP Version has input to the tests agents to enabling adjusting start up configuration #196

Open swcurran opened 3 years ago

swcurran commented 3 years ago

One strategy for a test component (such as the frameworks we have today) is the use of startup parameters to configure the agent for certain scenarios. Currently, since the test components may execute any subset of the tests, they have some aspects of their operation configured with start up options. We may need to be more flexible in handling that.

One thought would be to declare a test run to be "AIP 1" or "AIP 2" before starting, so that the test agent knows ahead of time what tests will be run and could be configured differently.

Ideally, agents are able to handle whatever inputs come from other agents. However, the "AIP 1"/"AIP 2" setting can be used to define behaviour when initiating actions, when the configuration of the other agent is not known. This will be important in getting to AIP 2, as AIP 1 is already established, mistakes and all, and lacks some necessary flexibility.

@ianco - thoughts on this?

ianco commented 3 years ago

@swcurran yes this is a good idea. The agents don't get re-started during the test run, so we can pass some kind of configuration information on startup, but we can't re-configure the agents dynamically during a test run. (At least the way the tests are currently run.)

ianco commented 3 years ago

Add a startup parameter to the backchannel "AIP1" or "AIP2", what are the specific settings that this will affect?

@andrewwhitehead @swcurran ?

swcurran commented 3 years ago

Idea is that it would be a parameter on ./manage level (default to AIP1, I guess), and then pass in as an environment variable to the Test Agent containers.

For ACA-Py at least, please share what we are using today for startup config and assume that will be the AIP10, and then we can look at what to change for AIP2. For example, for sure we want to change to always use the "https://" form of the message types that we send out, and we when we use OOB, we want to use DID Exchange as the only option. Not sure what others ones need to change, but this will help us to define those and see if there are others we need to add -- particularly for handling the new settings/handling for the envelope.

Does that make sense?

If a similar thing can be done for AF.Net, it would be good to know. I don't know what config options they have, and what is being used. Perhaps a question for Timo on where to find the AF-.Net options and where to find in AATH which ones we are using.

ianco commented 3 years ago

OK I'll first look into the aca-py options and propose an AIP1 and AIP2 set ...

ianco commented 3 years ago

Existing aca-py parameters (AIP10):

['./bin/aca-py', 'start', '--endpoint', 'http://192.168.65.3:9021', '--label', 'aca-py.Acme', '--inbound-transport', 'http', '0.0.0.0', '9021', '--outbound-transport', 'http', '--admin', '0.0.0.0', '9022', '--admin-insecure-mode', '--public-invites', '--wallet-type', 'indy', '--wallet-name', 'aca-py.acme483699', '--wallet-key', 'aca-py.Acme483699', '--auto-provision', '--recreate-wallet', '--genesis-transactions', '{...}\n', '--seed', 'd_000000000000000000000000483699', '--storage-type', 'indy', '--webhook-url', 'http://192.168.65.3:9023/webhooks', '--tails-server-base-url', 'http://192.168.65.3:6543']

ianco commented 3 years ago

For AIP20 add the following 2 parameters:

        if AIP_CONFIG >= 20 or os.getenv('EMIT-NEW-DIDCOMM-PREFIX') is not None:
            # if the env var is set for tails server then use that.
            result.append(("--emit-new-didcomm-prefix"))

        if AIP_CONFIG >= 20 or os.getenv('EMIT-NEW-DIDCOMM-MIME-TYPE') is not None:
            # if the env var is set for tails server then use that.
            result.append(("--emit-new-didcomm-mime-type"))

Note that this is already supported using 2 environment variables, in addition a parameter to specify an AIP level will be added to the ./manage run script.

ianco commented 3 years ago

https://github.com/hyperledger/aries-agent-test-harness/pull/203

TimoGlastra commented 3 years ago

If a similar thing can be done for AF.Net, it would be good to know. I don't know what config options they have, and what is being used. Perhaps a question for Timo on where to find the AF-.Net options and where to find in AATH which ones we are using.

Only the https one is configurable I think.