Git Product home page Git Product logo

hyperledger / aries-acapy-controllers Goto Github PK

View Code? Open in Web Editor NEW
49.0 5.0 47.0 3.85 MB

Web controllers for the Aries Cloud Agent - Python (ACA-Py)

License: Apache License 2.0

Dockerfile 0.58% JavaScript 14.23% CSS 1.11% HTML 23.64% TypeScript 25.52% C# 6.30% Shell 1.53% Handlebars 10.58% SCSS 0.31% Vue 4.87% Python 11.32%
dotnet angular expressjs hyperledger-aries aries-cloud-agent trust-over-ip hyperledger verifiable-credentials aries aca-py

aries-acapy-controllers's Introduction

aries-acapy-controllers's People

Contributors

amanji avatar andy-credivera avatar clemthestudent avatar conanoc avatar dependabot[bot] avatar loneil avatar maxino22 avatar rajpalc7 avatar ringaile avatar ryjones avatar swcurran avatar wadebarnes 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

aries-acapy-controllers's Issues

Error in starting up demo with ACME - something has changed somewhere

Here's the error:

LEDGER_URL=http://dev.greenlight.bcovrin.vonx.io ./run_demo webstart
Starting all agents and controllers, this may take a moment.
Creating network "docker_aca" with the default driver
Building acme-agent
ERROR: error fetching: fatal: couldn't find remote ref acme-complete
: exit status 128

Looks like something happened with the Acme branch?

Maybe the best answer is to have a copy of the complete Acme in this repo?

@amanji - do you have any time to take a look at this in the next few days - before the course launches? If not, I can dig in. Please let me know.

Running locally

Hello,

In your docker-compose file there is a line dockerfile: ./docker/Dockerfile.demo

This file does not exist there.

How can I run this?

Thank you

Suggested adjustments to the repo structure

Hey @amanji - looking awesome!! Love it!

I'd like to propose a few tweaks to the structure/folder names so that other examples can be added as well. Please take a look and let me know what you think:

  • rename "/demo" to "/AliceFaberDemo"
  • Move the current README.md to the "AliceFaberDemo" folder
  • Add a new, top of repo README.md that is more general, with an overview paragraph of what the the AliceFaberDemo is and a link to run it. It will have additional content like contributions guide, etc.
  • Move ".docker" to with AliceFaberDemo, and call it "docker"
  • Add a start up option "logs" (to go with "webstart", "webdown") that runs docker-compose -f <> logs

I'd be glad to make those adjustments if they make sense to you.

Set-Public DID: Status Code: 422: Unprocessable Entity (missing data)

Note: This is a copy of: hyperledger/aries-cloudagent-python#1037
Sample code: troubleshoot.js.gz

I'm working on building a controller. I'm using the Node.JS acme-controller as a sample to build on. Most of the functions work just fine, but I'm having an odd challenge with some functions such as /wallet/did/public and /ledger/register-nym. The POST request returns a 422: Unprocessable Entity. The ACA-Py debug logs show me the data is missing, but it's not (see the third line with the body). Using the same data on the Swagger UI works just fine.

Note: I'm using a multi-tenancy setup. The token is fine (it works when used in the Swagger UI). Besides - I have seen other error messages if I make a mistake there - and as said, this token does work when using it on the Swagger UI.

I've tried lots of alternatives - adding the Content-Type header, adding the Content-Length header, sending the data as JSON or sending it as a querystring. But, whatever I do - the result is the same - the 422 error. The code I'm using is attached (broken down to a single troubleshooting JS file).

wallets  | 2021-03-19 12:10:28,107 aries_cloudagent.admin.server DEBUG Incoming request: POST /wallet/did/public
wallets  | 2021-03-19 12:10:28,107 aries_cloudagent.admin.server DEBUG Match info: <MatchInfo {}: <ResourceRoute [POST] <PlainResource  /wallet/did/public> -> <function wallet_set_public_did at 0x7fa7efd47840>>
wallets  | 2021-03-19 12:10:28,107 aries_cloudagent.admin.server DEBUG Body: {"did":"3916TVUC18cHRCV1zoaN2v"}
wallets  | 2021-03-19 12:10:28,108 aries_cloudagent.admin.server ERROR Handler error with exception: Unprocessable Entity
wallets  | 
wallets  | =================
wallets  | Traceback (most recent call last):
wallets  |   File "/home/indy/.pyenv/versions/3.6.9/lib/python3.6/site-packages/webargs/asyncparser.py", line 90, in parse
wallets  |     result = schema.load(parsed)
wallets  |   File "/home/indy/.pyenv/versions/3.6.9/lib/python3.6/site-packages/marshmallow/schema.py", line 723, in load
wallets  |     data, many=many, partial=partial, unknown=unknown, postprocess=True
wallets  |   File "/home/indy/.pyenv/versions/3.6.9/lib/python3.6/site-packages/marshmallow/schema.py", line 904, in _do_load
wallets  |     raise exc
wallets  | marshmallow.exceptions.ValidationError: {'did': ['Missing data for required field.']}
wallets  | 
wallets  | During handling of the above exception, another exception occurred:
wallets  | 
wallets  | Traceback (most recent call last):
wallets  |   File "/home/indy/aries_cloudagent/admin/server.py", line 164, in ready_middleware
wallets  |     return await handler(request)
wallets  |   File "/home/indy/aries_cloudagent/admin/server.py", line 201, in debug_middleware
wallets  |     return await handler(request)
wallets  |   File "/home/indy/.pyenv/versions/3.6.9/lib/python3.6/site-packages/aiohttp_apispec/middlewares.py", line 34, in validation_middleware
wallets  |     schema["schema"], request, locations=schema["locations"]
wallets  |   File "/home/indy/.pyenv/versions/3.6.9/lib/python3.6/site-packages/webargs/asyncparser.py", line 95, in parse
wallets  |     error, req, schema, error_status_code, error_headers
wallets  |   File "/home/indy/.pyenv/versions/3.6.9/lib/python3.6/site-packages/webargs/asyncparser.py", line 108, in _on_validation_error
wallets  |     await error_handler(error, req, schema, error_status_code, error_headers)
wallets  |   File "/home/indy/.pyenv/versions/3.6.9/lib/python3.6/site-packages/webargs/aiohttpparser.py", line 166, in handle_error
wallets  |     content_type="application/json",
wallets  | aiohttp.web_exceptions.HTTPUnprocessableEntity: Unprocessable Entity
wallets  | 2021-03-19 12:10:28,111 aiohttp.access INFO 172.22.0.1 [19/Mar/2021:12:10:28 +0000] "POST /wallet/did/public HTTP/1.1" 422 224 "-" "-"

Just for reference, doing the exact same thing with a post to /multitenancy/wallet works just fine.

wallets  | 2021-03-18 10:53:53,184 aries_cloudagent.admin.server DEBUG Incoming request: POST /multitenancy/wallet
wallets  | 2021-03-18 10:53:53,184 aries_cloudagent.admin.server DEBUG Match info: <MatchInfo {}: <ResourceRoute [POST] <PlainResource  /multitenancy/wallet> -> <function wallet_create at 0x7f1e521660d0>>
wallets  | 2021-03-18 10:53:53,185 aries_cloudagent.admin.server DEBUG Body: {"image_url":"","key_management_mode":"managed","label":"Test app 10","wallet_dispatch_type":"default","wallet_key":"6KN1QuA1ZFs6Hs9TU0Nd90Ob","wallet_name":"testapp10@testapp","wallet_type":"indy","wallet_webhook_urls":["http://localhost:3000/webhooks"]}
wallets  | 2021-03-18 10:53:53,186 indy.non_secrets DEBUG open_wallet_search: >>> wallet_handle: 2, type_: 'wallet_record', query_json: '{"wallet_name": "testapp10@testapp"}', options_json: '{"retrieveRecords": true, "retrieveTotalCount": false, "retrieveType": false, "retrieveValue": true, "retrieveTags": false}'
wallets  | 2021-03-18 10:53:53,187 indy.non_secrets DEBUG open_wallet_search: Creating callback
wallets  | 2021-03-18 10:53:53,187 indy.libindy DEBUG create_cb: >>> cb_type: <class 'ctypes.CFUNCTYPE.<locals>.CFunctionType'>
wallets  | 2021-03-18 10:53:53,187 indy.libindy DEBUG create_cb: <<< res: <CFunctionType object at 0x7f1e486a52a0>
wallets  | 2021-03-18 10:53:53,187 indy.libindy DEBUG do_call: >>> name: indy_open_wallet_search, args: (c_int(2), c_char_p(139768168671712), c_char_p(139768040736240), c_char_p(139768206036816), <CFunctionType object at 0x7f1e486a52a0>)

[CODE PROPOSAL] Add QR code to new invatation page on faber controller

Hello,
here is my code:
FaberController\Connection\Components\NewConnection.razor

@page "/connections/new"

@layout Connection

@using ZXing;
@using ZXing.QrCode;
@using System.IO;
@using FaberController.Shared.Components.ObjectViewer
@using FaberController.Services
@using Newtonsoft.Json.Linq

@inject FCAgentService AgentService
@inject IJSRuntime JSRuntime

<div class="container">
    <form novalidate autocomplete="false">
        <button type="button" class="btn btn-primary btn-lg btn-block mb-3" @onclick="@OnSubmit" disabled="@(Invitation != null && Invitation.HasValues)">
            Create New Invitation
        </button>
    </form>

    @if (Invitation != null && Invitation.HasValues)
    {
        <div class="row">
            <div class="col-12">
                <div class="form-group">
                    <ObjectViewer Id="invitationObject" Label="Copy the following invitation object:" ObjectString="@InvitationObject"></ObjectViewer>
                </div>

                <div class="form-group">
                    <label>Alternatively copy the following invitation URL:</label>
                    <div class="input-group">
                        <input id="invitationUrl" type="text" class="form-control" @bind="InvitationUrl" readonly>
                        <div class="input-group-append">
                            <button class="btn btn-outline-secondary" type="button" @onclick="@(e => copy("#invitationUrl"))">
                                <i class="fas fa-clipboard"></i>
                            </button>
                        </div>
                    </div>
                </div>

                <div class="form-group"> 
                    <label>Or scan the following QR Code:</label>
                    <div/>
                    <object data="@($"data:image/svg+xml;utf8,{Uri.EscapeDataString(QrCodeContent)}")" type="image/svg+xml" width="300" height="300"></object>
                </div>
            </div>
        </div>
    }
</div>

@code {
    public JObject Invitation { get; set; }
    public string InvitationObject { get; set; }
    public string InvitationUrl { get; set; }
    public string QrCodeContent { get; set; }

    public async void OnSubmit()
    {
        Invitation = await AgentService.CreateInvitation();

        if (Invitation != null && Invitation.HasValues)
        {
            InvitationObject = Invitation["invitation"].ToString();
            InvitationUrl = Invitation["invitation_url"].ToString();

            QrCodeContent = GenerateQrCode(InvitationUrl);
        }
        base.StateHasChanged();
    }

    public async void copy(string selector)
    {
        await JSRuntime.InvokeAsync<string>("copyInputValue", selector);
    }

    private string GenerateQrCode(string invitationUrl)
    {
        var qrValue = invitationUrl;

        var barcodeWriter = new BarcodeWriterSvg
            {
                Format = BarcodeFormat.QR_CODE,
                Options = new QrCodeEncodingOptions
                {
                    Height = 300,
                    Width = 300
                }
            };

        var qrCodeImage = barcodeWriter.Write(qrValue);
        var qrCodeContent = qrCodeImage.Content;

        return qrCodeContent;
    }
}

FaberController.csproj :

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="Components\" />
    <Folder Include="Models\" />
    <Folder Include="Services\" />
    <Folder Include="Components\Nav\" />
    <Folder Include="Components\CardList\" />
    <Folder Include="Components\Card\" />
    <Folder Include="wwwroot\data\" />
    <Folder Include="Connection\" />
    <Folder Include="Connection\Components\" />
    <Folder Include="Shared\Components\" />
    <Folder Include="Shared\Components\ComponentNav\" />
    <Folder Include="Enums\" />
    <Folder Include="Schema\" />
    <Folder Include="Schema\Components\" />
    <Folder Include="Shared\Components\ObjectViewer\" />
    <Folder Include="Definition\" />
    <Folder Include="Definition\Components\" />
    <Folder Include="Credential\" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
    <PackageReference Include="ZXing.Net" Version="0.16.9" />
  </ItemGroup>
</Project>

Alice controller cant connect to agent

  1. Prerequisites are all OK
  2. docker containers are started
  3. x.x.x.x:8031 : agent is running
  4. x.x.x.x:9031 : Alice controller is running but shows RED indicator.
    • cant connect to agent
If the controller is not connected to it's agent you will see a red status indicator on the top right-hand side of the navbar. 
If the agent is succesffully connected, you will see a green status indicator.

image


Tried on AWS EC2 : ubuntu 18.04
image

Command to run Alice/Faber/Acme demo failing when building controllers

The build of the Alice/Faber/Acme controllers are failing -- unable to find a suitable version of "setuptools" for Alice, I think.

I tried to change the docker compose file to use the latest ACA-Py "dockerfile.demo" vs. the one from Petri Dish Dev, and that got passed the build error and the controllers started, but they failed issuing the credential.

Please investigate and update.

FYI -- @amanji

Selecting the Schema in Faber on the "CredentialsSchema" screen generates error

When I select the Schema in the drop down, the following error appears on the logs:

faber-controller_1  | fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
faber-controller_1  |       Unhandled exception in circuit 'vZkbr75ICYHFcMWpnASVzOnxGz9te7Vvwuxm7Ze1Zfk'.
faber-controller_1  | System.NullReferenceException: Object reference not set to an instance of an object.
faber-controller_1  |    at FaberController.Schema.Components.Schema.OnSelectSchema(ChangeEventArgs e) in /app/FaberController/Schema/Components/Schema.razor:line 46
faber-controller_1  |    at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__139_0(Object state)
faber-controller_1  |    at Microsoft.AspNetCore.Components.Rendering.RendererSynchronizationContext.ExecuteSynchronously(TaskCompletionSource`1 completion, SendOrPostCallback d, Object state)
faber-controller_1  |    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
faber-controller_1  | --- End of stack trace from previous location where exception was thrown ---
faber-controller_1  |    at Microsoft.AspNetCore.Components.Rendering.RendererSynchronizationContext.ExecuteBackground(WorkItem item)

And on the screen:

An error has occurred. This application may no longer respond until reloaded. [Reload](http://192.168.50.213:9021/)

Alice controller fails while building

I get the following error while running the command: LEDGER_URL=http://test.bcovrin.vonx.io ./run_demo webstart

[email protected] build /app
ng build

This version of CLI is only compatible with Angular versions ^16.0.0,
but Angular version 13.2.7 was found instead.

Please visit the link below to find instructions on how to update Angular.
https://update.angular.io/

npm ERR! code ELIFECYCLE
npm ERR! errno 3
npm ERR! [email protected] build: ng build
npm ERR! Exit status 3
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2024-01-16T11_13_39_583Z-debug.log
ERROR: process "/bin/sh -c npm run build" did not complete successfully: exit code: 3

I installed the latest version of angular as well on my machine, but nothing changed.

I also tried to built locally but ran into same error:

npm ERR! While resolving: [email protected]
npm ERR! Found: @angular/[email protected]
npm ERR! node_modules/@angular/compiler-cli
npm ERR! dev @angular/compiler-cli@"~13.2.2" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer @angular/compiler-cli@"^16.0.0" from @angular-builders/[email protected]
npm ERR! node_modules/@angular-builders/custom-webpack
npm ERR! dev @angular-builders/custom-webpack@"^16.0.1" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

Safari Date object error

Problem is on Proofs page. Timestamp from agent is not a valid format that Safari uses. Need to pipe to formatter that formats timestamp correctly.

[CODE PROPOSAL] Add QR code to new invatation page on acme controller

Hello,
here is my code:
AliceFaberAcmeDemo/controllers/acme-controller/public/javascripts
Add qrcode.min.js from qrcode.js.

and
AliceFaberAcmeDemo/controllers/acme-controller/views/new_connection.hbs

{{> component_nav moreNavLinks=navLinks}}

<!-- Assurez-vous d'inclure le script qrcode.min.js avant d'essayer de l'utiliser -->
<script src="/javascripts/qrcode.min.js"></script>

<div class="content">
    <div class="container">
        <form novalidate autocomplete="false" method="POST" action="/connections/new">
            <button type="submit" class="btn btn-primary btn-lg btn-block mb-3" {{#if invitation}}disabled{{/if}}>
                Create New Invitation
            </button>
        </form>

        {{#if invitation}}
        <div class="row">
            <div class="col-12">
                <div class="form-group">
                    <label>Copy the following invitation object:</label>
                    <div class="input-group">
                        <textarea id="invitationObject" class="form-control" cols="30" rows="10" readonly>{{ invitation.invitation }}</textarea>
                        <div class="input-group-append">
                            <button class="btn btn-outline-secondary" type="button" onclick="copyInputValue('#invitationObject')">
                                <i class="fas fa-clipboard"></i>
                            </button>
                        </div>
                    </div>
                </div>

                <div class="form-group">
                    <label>Alternatively copy the following invitation URL:</label>
                    <div class="input-group">
                        <input id="invitationUrl" type="text" class="form-control" value="{{ invitation.invitation_url }}"
                            readonly>
                        <div class="input-group-append">
                            <button class="btn btn-outline-secondary" type="button" onclick="copyInputValue('#invitationUrl')">
                                <i class="fas fa-clipboard"></i>
                            </button>
                        </div>
                    </div>
                </div>
                
                <!-- Nouvelle section pour le QR Code -->
                <div class="form-group">
                    <label>Or scan the following QR Code :</label>
                    <div id="qrcode"></div>
                </div>

            </div>
        </div>
        {{/if}}
    </div>
</div>

<!-- Script pour générer le QR Code -->
<script type="text/javascript">
    {{#if invitation}}
    window.onload = function() {
        let qr = new QRCode(document.getElementById("qrcode"), {
            text: "{{{ invitation.invitation_url }}}",
            width: 512,
            height: 512,
        });
    };
    {{/if}}
</script>

Errors running on play with docker

Tested locally and everything ran fine (ran the docker version).

Tried running on play with docker (http://play-with-von.vonx.io/) and had a few issues:

I suggest testing this on play with docker and see if you can reproduce the same results. I chatted with stephen curran and he had different issues running under pwd ...

ERROR: Service 'alice-controller' failed to build

I tried to run 'Aries Cloud Agent - Python (ACA-py) Demo Controllers' @ play-with-docker without luck:

git clone https://github.com/hyperledger/aries-acapy-controllers.git
cd aries-acapy-controllers/AliceFaberAcmeDemo
LEDGER_URL=http://dev.greenlight.bcovrin.vonx.io ./run_demo webstart

failed with

Step 9/14 : RUN npm run build
 ---> Running in 33fec9ccc10d

> [email protected] build /app
> ng build

Node.js version v10.24.1 detected.
The Angular CLI requires a minimum Node.js version of either v12.14 or v14.15.

Please update your Node.js version or visit https://nodejs.org/ for additional instructions.

npm ERR! code ELIFECYCLE
npm ERR! errno 3
npm ERR! [email protected] build: `ng build`
npm ERR! Exit status 3
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-10-10T16_14_59_428Z-debug.log
The command '/bin/sh -c npm run build' returned a non-zero code: 3
ERROR: Service 'alice-controller' failed to build : Build failed

HTTP response 422 when trying to send credential from Faber to Alice

In the credential page of Faber controller, when trying to issue the credential with default Json array of credentials, the process fails and nothing shows up in alice's credentials

End processing HTTP request after 4.7595ms - UnprocessableEntity
System.Net.Http.HttpRequestException: Response status code does not indicate success: 422 (Unprocessable Entity).
  at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
  at FaberController.Services.FCAgentService.SendCredential(String credential) in /home/devid/aries-acapy-controllers/AliceFaberAcmeDemo/controllers/faber-controller/FaberController/Services/FCAgentService.cs:line 194

the credential being issued is

{                                                                                                                                                                                                  
  "comment": "string",                                                                                                                                                                                      
  "credential_proposal": {                                                                                                                                                                                  
    "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/issue-credential/1.0/credential-preview",                                                                                                                 
    "attributes": [                                                                                                                                                                                         
      {                                                                                                                                                                                                     
        "name": "name",                                                                                                                                                                                     
        "value": "Alice Smith"                                                                                                                                                                              
      },                                                                                                                                                                                                    
      {                                                                                                                                                                                                     
        "name": "date",                                                                                                                                                                                     
        "value": "2020-01-01"                                                                                                                                                                               
      },                                                                                                                                                                                                    
      {                                                                                                                                                                                                     
        "name": "degree",                                                                                                                                                                                   
        "value": "Maths"                                                                                                                                                                                    
      },                                                                                                                                                                                                    
      {                                                                                                                                                                                                     
        "name": "age",                                                                                                                                                                                      
        "value": "24"                                                                                                                                                                                       
      }                                                                                                                                                                                                     
    ]                                                                                                                                                                                                       
  },                                                                                                                                                                                                        
  "schema_issuer_did": "UPDNa6DA2ddQrmXM1XZwtj",
  "connection_id": "1895e3ef-e7f1-4510-958a-76b952c75677",
  "schema_version": "18.8.9",
  "schema_id": "UPDNa6DA2ddQrmXM1XZwtj:2:degree schema:18.8.9",
  "issuer_did": "UPDNa6DA2ddQrmXM1XZwtj",
  "cred_def_id": "UPDNa6DA2ddQrmXM1XZwtj:3:CL:18:default",
"schema_name": "degree schema"
}

ERROR: dotnet run -p FaberController

Dear all,

I am trying to run the faber controller and it produces error message as belows:

/usr/share/dotnet/sdk/3.1.415/NuGet.targets(128,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/home/draco/SSI/work/aries-acapy-controllers/AliceFaberAcmeDemo/controllers/faber-controller/FaberController/FaberController.csproj]
/usr/share/dotnet/sdk/3.1.415/NuGet.targets(128,5): error : The SSL connection could not be established, see inner exception. [/home/draco/SSI/work/aries-acapy-controllers/AliceFaberAcmeDemo/controllers/faber-controller/FaberController/FaberController.csproj]
/usr/share/dotnet/sdk/3.1.415/NuGet.targets(128,5): error : The remote certificate is invalid according to the validation procedure. [/home/draco/SSI/work/aries-acapy-controllers/AliceFaberAcmeDemo/controllers/faber-controller/FaberController/FaberController.csproj]

How to solved it? Thank you

Running webstart on linux fails on issuing credential

The recent PR fixes PWD, but still not working on Linux. From the logs, I get this error when Faber sends Alice her credential. I selected all fields on the "Credentials" screen -- connection, schema, credDef.

Any ideas?

faber-controller_1  | Agent is running on: http://faber-agent:8021
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.LogicalHandler[100]
faber-controller_1  |       Start processing HTTP request GET http://faber-agent:8021/credential-definitions/created
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.ClientHandler[100]
faber-controller_1  |       Sending HTTP request GET http://faber-agent:8021/credential-definitions/created
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.ClientHandler[101]
faber-controller_1  |       Received HTTP response after 8.7817ms - OK
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.LogicalHandler[101]
faber-controller_1  |       End processing HTTP request after 9.3651ms - OK
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.LogicalHandler[100]
faber-controller_1  |       Start processing HTTP request GET http://faber-agent:8021/connections
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.ClientHandler[100]
faber-controller_1  |       Sending HTTP request GET http://faber-agent:8021/connections
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.LogicalHandler[100]
faber-controller_1  |       Start processing HTTP request GET http://faber-agent:8021/schemas/created
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.ClientHandler[100]
faber-controller_1  |       Sending HTTP request GET http://faber-agent:8021/schemas/created
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.ClientHandler[101]
faber-controller_1  |       Received HTTP response after 5.7443ms - OK
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.LogicalHandler[101]
faber-controller_1  |       End processing HTTP request after 6.0492ms - OK
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.LogicalHandler[100]
faber-controller_1  |       Start processing HTTP request GET http://faber-agent:8021/connections
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.ClientHandler[100]
faber-controller_1  |       Sending HTTP request GET http://faber-agent:8021/connections
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.ClientHandler[101]
faber-controller_1  |       Received HTTP response after 9.0385ms - OK
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.LogicalHandler[101]
faber-controller_1  |       End processing HTTP request after 9.3932ms - OK
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.ClientHandler[101]
faber-controller_1  |       Received HTTP response after 5.5112ms - OK
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.LogicalHandler[101]
faber-controller_1  |       End processing HTTP request after 5.7233ms - OK
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.LogicalHandler[100]
faber-controller_1  |       Start processing HTTP request POST http://faber-agent:8021/issue-credential/send
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.ClientHandler[100]
faber-controller_1  |       Sending HTTP request POST http://faber-agent:8021/issue-credential/send
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.ClientHandler[101]
faber-controller_1  |       Received HTTP response after 2.8037ms - UnprocessableEntity
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.LogicalHandler[101]
faber-controller_1  |       End processing HTTP request after 3.0554ms - UnprocessableEntity
faber-controller_1  | System.Net.Http.HttpRequestException: Response status code does not indicate success: 422 (Unprocessable Entity).
faber-controller_1  |    at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
faber-controller_1  |    at FaberController.Services.FCAgentService.SendCredential(String credential) in /app/FaberController/Services/FCAgentService.cs:line 196
faber-controller_1  | Agent is running on: http://faber-agent:8021
faber-controller_1  | Agent is running on: http://faber-agent:8021
faber-controller_1  | info: System.Net.Http.HttpClient.FCAgentService.LogicalHandler[100]
Faber      | 2022-12-24 18:19:18,188 aries_cloudagent.admin.server ERROR Handler error with exception: Unprocessable Entity
Faber      | Traceback (most recent call last):
Faber      |   File "/home/indy/.pyenv/versions/3.6.13/lib/python3.6/site-packages/webargs/asyncparser.py", line 90, in parse
Faber      |     result = schema.load(parsed)
Faber      |   File "/home/indy/.pyenv/versions/3.6.13/lib/python3.6/site-packages/marshmallow/schema.py", line 723, in load
Faber      |     data, many=many, partial=partial, unknown=unknown, postprocess=True
Faber      |   File "/home/indy/.pyenv/versions/3.6.13/lib/python3.6/site-packages/marshmallow/schema.py", line 904, in _do_load
Faber      |     raise exc
Faber      | marshmallow.exceptions.ValidationError: {'credential_proposal': ['Missing data for required field.'], 'connection_id': ['Missing data for required field.']}
Faber      | 
Faber      | During handling of the above exception, another exception occurred:
Faber      | 
Faber      | Traceback (most recent call last):
Faber      |   File "/home/indy/aries_cloudagent/admin/server.py", line 171, in ready_middleware
Faber      |     return await handler(request)
Faber      |   File "/home/indy/aries_cloudagent/admin/server.py", line 208, in debug_middleware
Faber      |     return await handler(request)
Faber      |   File "/home/indy/.pyenv/versions/3.6.13/lib/python3.6/site-packages/aiohttp_apispec/middlewares.py", line 34, in validation_middleware
Faber      |     schema["schema"], request, locations=schema["locations"]
Faber      |   File "/home/indy/.pyenv/versions/3.6.13/lib/python3.6/site-packages/webargs/asyncparser.py", line 95, in parse
Faber      |     error, req, schema, error_status_code, error_headers
Faber      |   File "/home/indy/.pyenv/versions/3.6.13/lib/python3.6/site-packages/webargs/asyncparser.py", line 108, in _on_validation_error
Faber      |     await error_handler(error, req, schema, error_status_code, error_headers)
Faber      |   File "/home/indy/.pyenv/versions/3.6.13/lib/python3.6/site-packages/webargs/aiohttpparser.py", line 166, in handle_error
Faber      |     content_type="application/json",
Faber      | aiohttp.web_exceptions.HTTPUnprocessableEntity: Unprocessable Entity

A document in the AliceFaberAcme demo that links to common events in the code

I think it would be helpful to have a document in the AliceFaberAcme folder that has links to the major event in the controller code (perhaps CodeLinks.md?).

The things that I can think of (although I'm not sure all make sense). Perhaps do this as a table, with Event, Alice, Faber, Acme, and fill in only the cells that are relevant?

  • Initialization
  • Generate Invitation (Faber, Acme)
  • Receive Invitation (Alice)
  • Offer Credential (Faber)
  • Request Credential (Alice)
  • Issue Credential (Faber)
  • Request Proof (Faber, Acme)
  • Receive Proof Request / Send Proof (Alice)
  • Verify Proof (Faber, Acme)
  • WebHooks processing (Alice)

As well, it might be worth showing where the UI integration occurs:

  • Initialization
  • Events received
  • UI Updates

Again - let me know if this makes sense. It's a pretty rough idea.

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.