Comments (8)
Absolute agreement that the RFC states need to be used. @nodlesh this will probably mean that tests and steps need to be changed and the ACA-Py backchannel as well. And perhaps, ACA-Py needs to change -- that's TBD.
Suggest that someone -- @TimoGlastra (?) -- create a google spreadsheet that has:
- a section per protocol as you start to work on the protocol
- the states of the RFC
- the states in the Test Harness
- highlighted differences
With each protocol so documented, Sheldon will change the Test Harness and ACA-Py backchannel, update the spreadsheet (and notify us the change has been made) and if appropriate, discuss with the ACA-Py team if ACA-Py should be changed.
Open to other ideas on the approach.
This is very good progress -- making the tests truly aligned with the RFCs.
Thanks!
from aries-agent-test-harness.
Awesome. I'll look into creating the spreadsheet tomorrow
from aries-agent-test-harness.
Yes, definitely agree on changing the test harness and maybe the aca-py backchannel. We've mentioned this before, there may even be an issue logged on it. The AATH has to align to the states in the RFC. IMO, Aca-py needs to change the states as well to what the RFC mentions. If the decision is not to change Aca-py then the Aca-py backchannel will swap out the states in the responses for what the test harness expects.
I can make this a priority, after I have the Present Proof Test Scenario I'm working on completed.
If I'm not mistaken, the Issue Cred and Present Proof 1.0 RFCs don't actually mention what the states should be in those protocols. We have to make a decision to either remove the state checks in the Tests, keep the states in the tests and let the backchannels translate, or add states to the RFC. I'd recommend the RFCs mention the states so we have some consistency.
from aries-agent-test-harness.
You're right @nodlesh. The 1.0 RFCs don't include the states. Hadn't noticed that.
We have to make a decision to either remove the state checks in the Tests,
Interesting you bring this up. I had a discussion with Tomislav yesterday where he said:
The problem with the states is that they are mentioned in the RFC, but are not required or part of the messaging protocol.
They feel like recommendation
So in my opinion, they shouldn't be part of the interop test harness
This was specifically about the connection protocol, but it would apply to all protocols. However even if we remove them from the test harness I think we'll need to add in something that will eventually do the same: check in which step of the protocol we are. e.g. Is it correct 'agent A' send a message to 'Agent B', and did 'Agent B' indeed receive this message. It however is not related to the state anymore then, but related to the actions that happened.
from aries-agent-test-harness.
My initial readings of the Connection RFC didn't feel like the states were recommendations to me, but I can see how it could be construed that way. If the tests have no state to check, the assertions get pretty thin. Agents must be maintaining some sort of protocol state internally, so it would be good to pass that back to the backchannel. The tests can continue to check for a state, the backchannels can translate whatever state is received from the agent to what the tests expect, if the state is equivalent.
In general the tests at each step do the following:
- Call the operation
- Assert the response code
- Assert the status of the caller in the response
- Save off any needed items in the response data to the test context
- Assert the status of the receiver in the web hook.
from aries-agent-test-harness.
In the initial versions of RFCs, states were included but may not have been seen as required. We have tried to make it very clear that protocols are all about state management and that a clear definition of states is absolutely crucial in a protocol RFC.
While I can abide by Tomislav's comments in the first few RFCs that have been implemented, I disagree with that view ongoing. I definitely disagree that the interop test suite should do anything other than to take them as truth. I'm OK with the backchannel masking an RFC-implementation difference for now, but I would strongly encourage the builders to eliminate the need for that over time. Basically -- I encourage the proposal to Sheldon above: manage the state differences in the acapy backchannel for now, but feed back to the ACA-Py team to fix the state management in the framework.
from aries-agent-test-harness.
@swcurran @nodlesh here is a spreadsheet that gives an overview of all the states: https://docs.google.com/spreadsheets/d/1ViG4swP3-0X3_a0Ak_6eGqzhCZomvlJeb4uj-DSh4Jo/edit?usp=sharing
Colors automatically change based on if it matches the RFC expected state. @swcurran Is this like you had it in mind?
from aries-agent-test-harness.
I think this one can be closed now. Great :)
from aries-agent-test-harness.
Related Issues (20)
- Apply workaround to fix issues using the AATH scripts on ARM based MACs
- ACA-Py Backchannel using main with Poetry not working HOT 16
- Support the ability to point to an existing running agent as any role in the tests
- Remove dotnet from the regular regression interop test sets
- Remove the separation of AIP 1.0 & 2.0 in AATH tests
- ACA-Py tests failed on nightly run -- reformat of version?
- Anoncreds issuer_did vs issuer_id HOT 2
- Anoncreds aca-py update backchannel to use new endpoints for schema and cred def HOT 1
- Add tests for Peer DID Interoperability to AATH to enable a Community Coordinate Update to Qualified DIDs HOT 1
- Add tests for RFC 0794 DID Rotate HOT 2
- All AATH workflows are failing to run due to Bad Creds HOT 1
- Cannot start test agents with ngrok anymore, ngrok now requires an authtoken
- AFJ test runset is failing with timeout on T005-RFC0211
- Create VS Code Dev Container for AATH and Backchannels HOT 2
- Enable 0044-mime-type tests for ACA-Py HOT 1
- Publishing backchannel docker images
- `./manage run` failing to start von network HOT 1
- Port ACA-Py test agents from universal resolver plugin to universal resolver merged with ACA-Py
- Port AATH/ACA-Py Agents from old ACA-Py Redis Queue Plugin Repo to Hyperledger ACA-Py Plugin Repo
- Did-exchange threading / connection identification HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aries-agent-test-harness.