Giter Site home page Giter Site logo

hyperledger / aries-toolbox Goto Github PK

View Code? Open in Web Editor NEW
42.0 7.0 45.0 6.18 MB

Hyperledger Aries

Home Page: https://wiki.hyperledger.org/display/aries

License: Apache License 2.0

JavaScript 23.10% Vue 76.49% EJS 0.41% TypeScript 0.01%
hacktoberfest

aries-toolbox's Introduction

Deprecation Notice

This project is no longer receiving updates. The Aries Toolbox was an invaluable tool in helping to bootstrap the Aries Ecosystem by providing ways to interact with Agents in development. It was one of the earliest UIs to an agent and it helped shape our thinking of Agents, DIDComm, AnonCreds, and more.

While it served a critical role in the early days of the Aries project, the Aries Toolbox has worked itself out of a job. Today, we have a rich ecosystem of agents. It is no longer necessary to demonstrate DIDComm and Credential Issuance and Verification over DIDComm using the Toolbox because we can do it with any number of available Issuer, Verifier, and Holder agents.

There are some components of the Toolbox that remain relevant and valuable tools during Agent development, such as live composition of DIDComm messages and being able to analyze and inspect DIDComm messages in plaintext. These concepts will live on in other tools and projects.

If you have questions about this project or replacements for this project, feel free to reach out on Hyperledger's Discord: https://discord.gg/hyperledger

Aries Toolbox

The Toolbox makes interacting with Aries Agent easier for developers and system administrators. Toolbox Modules provide user interface for protocols. Debugging information and details are included and visible.

The ToolBox uses the Discover Features Protocol to determine which protocols are supported by the connected agent, and will customize the menu of modules to match supported protocols.

The toolbox can connect to multiple agents simultaneously, each with it's own window. This makes it possible to manage multiple agents, either in production or in technical training exercises.

Project State

The structure of the project is well formed and ready for contribution.

Consult the Architecture and How Modules Work to learn more or contribute a new module.

Many of the included modules rely on administrative protocols that have not yet been through a thorough review. These protocols are supported for ACApy via an extension that can be loaded at runtime. As administrative protocols are reviewed, both the appropriate toolbox modules and the ACApy extensions will be updated.

Build Setup

# install dependencies
yarn install

# serve with hot reload at localhost:9080
yarn run dev

# build electron application for production
yarn run build


This project was created with vue-electron-template.

Documentation about the original structure (electron-vue) can be found here.

aries-toolbox's People

Contributors

burdettadam avatar cjhowland avatar dbluhm avatar dependabot[bot] avatar frostyfrog avatar kdenhartog avatar ken-ebert avatar lindluni avatar lynnbendixsen avatar manonthemat avatar mepeltier avatar mikelodder7 avatar peterstrob avatar ryjones avatar sethjback avatar telegramsam avatar timoglastra avatar wyaobiz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

aries-toolbox's Issues

Verification process never completes

Summary

The Verification gets to a "request_sent" state but doesn't ever progress past that on my box.

Definition (optional)

See Activity 5 (among others)

My Credentials Tab

Listing of credentials, button for send proposal.
Send proposal opens dialog with form with credential definition select. On selection, the rest of the form is populated with inputs for each attribute in the cred def.

Credentials listing can be done with admin-holder/1.0/credentials-get-list

Multi-credential proofs fails

Summary

Activity 7 does not yield the desired results. Its not currently working in the toolbox or in acapy.

Definition (optional)

Activity 7.B.4

Verification Tab

Trigger presentations of information from the issuer's perspective (reciprocating holder perspective is "presentations").

  • Show in progress verifications
  • Show completed verifications
  • Trigger a new verification by sending a present-proof request to holder
    • Select connection ID
    • Add attribute by name
      • Optionally select restrictions like what cred def, issuer, etc

admin-issuer/1.0/presentations-get-list for retrieving presentation exchange records.
admin-issuer/1.0/request-presentation to trigger a new presentation exchange.

Modularize Protocol Discovery

This one is unique. The data won't be pulled by this component but it will be used to display the data so it must be passed in as a prop. It is still advantageous to break the view elements out into a component.

"Restrictions:" fields

Summary

Last I heard, entering anything into either Restrictions field is either ignored or causes failure.

Definition (optional)

We have been telling people not to enter anything into any of the Restrictions fields on any screens that show them (they appear when adding a field during the issue credential process.)
This is lower priority than some of the other tickets I will enter today because it works just fine if you do not enter anything into the fields and the instructions are written to point that out.

Connection doesn't appear in the list

Summary

When connecting from your Company to your Holder in activity 3, Step D.5.a doesn't have the connection in the list of connections until you "Click refresh in the connections tab to see it there and then it appeared here too"
Possible workaround:
Add a step D.2.b that states
b. Select the "Connections" tab and click "refresh"

Definition (optional)

Activity 3.D.5.a

MUST click on the default item

Summary

When an item shows up as the default (i.e. credential definition) sometimes "You MUST click the correct item, even if the correct item appears in the window" before any of the fields appear that need to be filled in. Tabbing to the item and hitting enter doesn't even work. You must click.

Definition (optional)

Activity 1.E.5.c

Running toolbox in browser

Hi!
For our case we had to run this project in browser, and we wonder what was the reason to choose electron?
If you are interested in providing version able to run in browser I can prepare pull request adding ability to run it with vue-cli-service. Just let me know if you find it useful, so we can talk about details.

Node 14

We ought to verify that the toolbox is running on Node 14, resolve any issues, and eventually move our pipeline to Node 14. Thanks @burdettadam for pointing this out.

Convert tabs to side nav

Convert tab layout to side nave layout. Modularizing each tab into its own component is a prerequisite for this issue.

Message flow for mediated messages

I'm working on adding the ability for the toolbox to use a mediator for connections to other agents. This ability will extend the types of interactions that the toolbox can have with agents, including mobile agents or agents behind firewalls.

Here is the question: How should we refactor the code to handle messages received through the mediator? Currently, connections are maintained by the connection-specific windows (AgentBase.vue). Using this window presents two problems:

  1. Messages must be passed from the mediator window to the appropriate connection window. This is likely solvable via the message bus.
  2. If the mediator window is closed, how is the connection to be maintained?

I think the right answer is for the 'core' toolbox agent to maintain the connection with the mediator. This means that we would need an additional connection (keypair on both sides) for the exclusive use of the mediator. This allows all inbound mediated messages to flow to the 'core' agent (maintained in the AgentList.vue code) to be distributed to the appropriate connection specific windows.

Thoughts on this approach, or better ideas on how to solve the problem?

allow credential definition tagging

If you create a credential definition in one agent, write it to the ledger, open up a new agent, and try to create a credential definition using the same did as in the previous agent, it will fail. Credentials definitions have tags to allow an agent to create multiple credential definitions for a single schema.

As a client, when creating a new credential definition I would be able to provide a tag that will allow me to create a new definition using the same Did and schema I have before.

Connection UI does not refresh when connect to Sovrin Cloud Agent does not complete.

In the Aries Toolbox,
on the connections tab,
when I copy the invitation url "https://agent.sovrin.org/?c_i=eyJAdHlwZSI6ICJkaWQ6c292OkJ6Q2JzTlloTXJqSGlxWkRUVUFTSGc7c3BlYy9jb25uZWN0aW9ucy8xLjAvaW52aXRhdGlvbiIsICJAaWQiOiAiNjBhNjY1OGUtMDYzZS00MTcyLWIyN2ItZmZlYzJjMzY2N2ZiIiwgInNlcnZpY2VFbmRwb2ludCI6ICJodHRwczovL2FnZW50LnNvdnJpbi5vcmcvIiwgImxhYmVsIjogIlNvdnJpbiBBZ2VudCIsICJyZWNpcGllbnRLZXlzIjogWyIzR3p2NEhZb2ZXNUp5WGd2YzdBeGVhNmVVWkdkTEJ1Rk43NHRjVzVmb0gxRyJdfQ=="
into "Add connection from invitation:" and
click "Add Agent",
and nothing happens in the UI.
If I reload,
the "Sovrin Agent" goes into the "Pending Connections:" and never completes.

Holder undefined

Summary

The "Holder undefined" title needs changed to be more clear.

Definition (optional)

On the Verifications tab, whenever a verification shows up in the list the words "Holder undefined" appear. That title is unclear and indiscernible between the different items in the list. I think that this shows up in Activity 5.B and in Activity 2.B.4

Failed to start Aries Toolbox on Windows

I'm running Aries Toolbox on Windows (10, git-bash) and received this error on the console and in the Aries Toolbox window. Any ideas?

I've recently run it with the same commands on Linux.

 ERROR in Template execution failed: ReferenceError: process is not defined

  ERROR in   ReferenceError: process is not defined

    - index.ejs:11 eval
      [.]/[html-webpack-plugin]/lib/loader.js!./src/index.ejs:11:2

    - index.ejs:16 module.exports
      [.]/[html-webpack-plugin]/lib/loader.js!./src/index.ejs:16:3

    - index.js:284
      [aries-toolbox]/[html-webpack-plugin]/index.js:284:18

    - runMicrotasks

    - task_queues.js:97 processTicksAndRejections
      internal/process/task_queues.js:97:5

Commands run:

git clone https://github.com/hyperledger/aries-toolbox
cd aries-toolbox
npm i
npm run dev
$ npm --version
6.13.6
$ node --version
v13.7.0

Presentations Tab

Trigger presentations of information from the holder's perspective (reciprocating issuer perspective is "verifications").

  • Show in progress presentations
  • Show completed presentations
  • Trigger a new verification by sending a present-proof request to holder
    • Select connection ID
    • Add attribute by name
      • Select credential to prove the attribute from

admin-holder/1.0/presentations-get-list for retrieving presentation exchange records.
admin-holder/1.0/send-presentation-proposal to trigger a new presentation exchange.

Refresh schema retrieval

Summary

After "retrieving" the schema it doesn't show up until I reload the app. A "reload" button, or correcting the auto-refresh will fix this.

Definition (optional)

Activity 3.c.2.b . gives the context for an example.

Refresh button on Verifications tab

Summary

Reload is required for verifications to appear, so we need a refresh button. Alternatively, this might be able to be fixed by repairing the auto-refresh issue

Definition (optional)

Activity 2.B.4

Invitations

Leaving alias and label blank in invitations page should default to something other than an empty string in the invitation label for that page. The invitation itself contains the agent name as the suggested label as expected meaning if Alice creates a blank invitation and gets it to Bob somehow, the pending connection correctly shows "Alice".

Connect to Sovrin Cloud Agent never completes.

Modularize DIDs

Convert DID section to use message bus and separate component.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.