Giter Club home page Giter Club logo

von-agent-template's Introduction

License Lifecycle:Retired

von-agent-template

This repo is a template for creating an instance of the Verifiable Organizations Network (VON) Issuer/Verifier Agent running against a Hyperledger Indy network such as Sovrin.

von-agent-template is being developed as part of the VON. For more information on VON, see https://vonx.io. Even better, join in with what we are doing and contribute to VON and the Indy community.

A VON Issuer/Verifier Agent (see examples in GreenLight) and OrgBook are the two major components of a local VON ecosystem. OrgBook is an instance of a credential repository from which a VON Issuer/Verifier Agent instance receives proofs of verifiable claims and to which a VON Issuer/Verifier Agent issues verifiable credentials. VON Issuer/Verifier Agent instances are configured, deployed and operated by registration, permit and licence issuing service organizations that want to issue or verify verifiable credentials. One VON Issuer/Verifier Agent instance can support multiple types of credentials and in most cases, an organization would only need to run a single agent to process all credential types they need. An agent based on this template is deployed using containers, enabling load balancing and high availability capabilities through a container management platform such as Red Hat's OpenShift, Kubernetes on AWS, Azure or Google Cloud, etc.

In the future, instances of VON Issuer/Verifier Agent will also be able to communicate directly with personal and organizational agents or wallets and will be able to issue and/or verify credentials based on different underlying DID-method implementations.

Getting Started

Use this VON Issuer/Verifier Getting Started Tutorial to go through the basics of configuring a VON Issuer/Verifier Agent created from this template.

Configuration Guide

Much of the work in configuring a VON Issuer/Verifier Agent is in setting up the YAML files in the von-x-agent/config folder. A Configuration Guide documents those files.

Managing Your Agent Repo

If you are creating an agent for a service organization that will become a VON Issuer/Verifier Agent, most of the changes you will make in this repo will be for your own organization's use and will not be pushed back into the base repo. As such, we suggest you use one of following methods for managing this repo. We recommend the first method, but would welcome suggestions of other approaches that might have more upside and less downside. Please add an issue to tell us about a better way.

  1. Make a snapshot (not a fork or clone - a text copy) of this repo to use as the base repo for your organization's agent from there. The benefit of that approach is that your developers can fork the snapshot repo and manage everything through the common GitHub Pull Request (PR) model. The downside is that periodically you should look for code updates to this (von-agent-template) repo and apply them to your copy. There are relatively easy ways to track such changes, such as keeping a fork of von-agent-template, using GitHub's compare capability to find the differences and apply them to your snapshot repo.

  2. Make a fork of this repo, and in that, create a branch that you will use as the deployment branch for your agent instance. The benefit of this approach is that you can stay up-to-date with the base repo by applying commits to your branch from the master. The downside is a much more complex branching model for your developers and a non-typical deployment model for your code.

In theory, the two mechanisms above can be combined, and branches could be created in the main repo for the different agent instances. This might be an approach that, for example, the BC Gov could use—creating a branch for each VON Issuer/Verifier Agent in BC Gov. However, we think that the benefits of such a scheme is not worth the complexity.

Getting Help or Reporting an Issue

To report bugs/issues/feature requests, please file an issue.

How to Contribute

If you have found this project helpful, please contribute back to the project as you find new and better ways to use SonarQube in your projects.

If you would like to contribute, please see our CONTRIBUTING guidelines.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

von-agent-template's People

Contributors

andrewwhitehead avatar carolhoward avatar dcmiddle avatar esune avatar ianco avatar repo-mountie[bot] avatar swcurran avatar wadebarnes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

von-agent-template's Issues

GreenLight Topography is stuck

Hey so
I downloaded the code

ran init.sh and selected option 1

The managed and built my services

Following the readme I got to section

Step 4: Issuing a Credential Using GreenLight

And followerd the instruction and now my browser just spins when creating the topography

https://greenlight.orgbook.gov.bc.ca/demo?name=saas.sass&version=1.0.0&did=J472BHBoR2g28przUB6eTt&issuer_endpoint=http:%2F%2F192.168.65.3:5001

Not sure what to do now ? , I presume its to do with the issuer_endpoint being 192 but again , dont see how to change that

Any help would be great

Issues Running Locally with missing URL params and bad network config

Hey so a couple of issues if you pick number 2 in init.sh

After starting manage start the following presents errors

WARNING: The INDY_LEDGER_URL variable is not set. Defaulting to a blank string.
WARNING: The AUTO_REGISTER_DID variable is not set. Defaulting to a blank string.
WARNING: The INDY_GENESIS_URL variable is not set. Defaulting to a blank string.
WARNING: The ISSUER_WALLET_DID variable is not set. Defaulting to a blank string.

It then fails because the network tob_tob isnt created

It tells you to create the docker network which is really useful.

You then run again and then you get then you get this error

vonx.indy.errors.IndyConfigError: Neither INDY_GENESIS_URL nor INDY_LEDGER_URL are defined

You can get past this error by proving it on the runtime

( Am running the VON network locally so my geneis url was http://localhost:9000/genesis

But then you get this error

vonx.common.service.ServiceSyncError: Exception during fetching genesis transaction: Cannot connect to host localhost:9000 ssl:None [Cannot assign requested address] (None)

Cant get past this as the network defined wont let the docker containers connect to other servers running on my localmachine

Add missing topics

TL;DR

Topics greatly improve the discoverability of repos; please add the short code from the table below to the topics of your repo so that ministries can use GitHub's search to find out what repos belong to them and other visitors can find useful content (and reuse it!).

Why Topic

In short order we'll add our 800th repo. This large number clearly demonstrates the success of using GitHub and our Open Source initiative. This huge success means its critical that we work to make our content as discoverable as possible; Through discoverability, we promote code reuse across a large decentralized organization like the Government of British Columbia as well as allow ministries to find the repos they own.

What to do

Below is a table of abbreviation a.k.a short codes for each ministry; they're the ones used in all @gov.bc.ca email addresses. Please add the short codes of the ministry or organization that "owns" this repo as a topic.

add a topic

That's in, you're done!!!

How to use

Once topics are added, you can use them in GitHub's search. For example, enter something like org:bcgov topic:citz to find all the repos that belong to Citizens' Services. You can refine this search by adding key words specific to a subject you're interested in. To learn more about searching through repos check out GitHub's doc on searching.

Pro Tip 🤓

  • If your org is not in the list below, or the table contains errors, please create an issue here.

  • While you're doing this, add additional topics that would help someone searching for "something". These can be the language used javascript or R; something like opendata or data for data only repos; or any other key words that are useful.

  • Add a meaningful description to your repo. This is hugely valuable to people looking through our repositories.

  • If your application is live, add the production URL.

Ministry Short Codes

Short Code Organization Name
AEST Advanced Education, Skills & Training
AGRI Agriculture
ALC Agriculture Land Commission
AG Attorney General
MCF Children & Family Development
CITZ Citizens' Services
DBC Destination BC
EMBC Emergency Management BC
EAO Environmental Assessment Office
EDUC Education
EMPR Energy, Mines & Petroleum Resources
ENV Environment & Climate Change Strategy
FIN Finance
FLNR Forests, Lands, Natural Resource Operations & Rural Development
HLTH Health
FLNR Indigenous Relations & Reconciliation
JEDC Jobs, Economic Development & Competitiveness
LBR Labour Policy & Legislation
LDB BC Liquor Distribution Branch
MMHA Mental Health & Addictions
MAH Municipal Affairs & Housing
BCPC Pension Corporation
PSA Public Safety & Solicitor General & Emergency B.C.
SDPR Social Development & Poverty Reduction
TCA Tourism, Arts & Culture
TRAN Transportation & Infrastructure

NOTE See an error or omission? Please create an issue here to get it remedied.

It's Been a While Since This Repository has Been Updated

This issue is a kind reminder that your repository has been inactive for 180 days. Some repositories are maintained in accordance with business requirements that infrequently change thus appearing inactive, and some repositories are inactive because they are unmaintained.

To help differentiate products that are unmaintained from products that do not require frequent maintenance, repomountie will open an issue whenever a repository has not been updated in 180 days.

  • If this product is being actively maintained, please close this issue.
  • If this repository isn't being actively maintained anymore, please archive this repository. Also, for bonus points, please add a dormant or retired life cycle badge.

Thank you for your help ensuring effective governance of our open-source ecosystem!

Build gets stuck on first step (Ubuntu 22)

Hey Everyone,

I have encountered some problems while trying to build von-agent-template.
On Ubuntu 22.04, when I am using the command ./manage build, I get the following error message:

ERROR: Service 'myorg-agent' failed to build: manifest for bcgovimages/von-image:py36-1.7-ew-0 not found: manifest unknown: manifest unknown

During build step 1/16.

Do you have any ideas for a work around or fix for that?

Thanks a lot in advance

It's Been a While Since This Repository has Been Updated

This issue is a kind reminder that your repository has been inactive for 180 days. Some repositories are maintained in accordance with business requirements that infrequently change thus appearing inactive, and some repositories are inactive because they are unmaintained.

To help differentiate products that are unmaintained from products that do not require frequent maintenance, repomountie will open an issue whenever a repository has not been updated in 180 days.

  • If this product is being actively maintained, please close this issue.
  • If this repository isn't being actively maintained anymore, please archive this repository. Also, for bonus points, please add a dormant or retired life cycle badge.

Thank you for your help ensuring effective governance of our open-source ecosystem!

Link to config guide is broken

The root README.md has a link that points to https://github.com/bcgov/von-agent-template/blob/master/von-x-agent/config/ConfigurationGuide.md which doesn't exist. I assume it should be pointing to https://github.com/bcgov/von-agent-template/blob/master/von-x-agent/config/Readme.md?

Add project lifecycle badge

No Project Lifecycle Badge found in your readme!

Hello! I scanned your readme and could not find a project lifecycle badge. A project lifecycle badge will provide contributors to your project as well as other stakeholders (platform services, executive) insight into the lifecycle of your repository.

What is a Project Lifecycle Badge?

It is a simple image that neatly describes your project's stage in its lifecycle. More information can be found in the project lifecycle badges documentation.

What do I need to do?

I suggest you make a PR into your README.md and add a project lifecycle badge near the top where it is easy for your users to pick it up :). Once it is merged feel free to close this issue. I will not open up a new one :)

Can't add multiple proofs in routes.yml

Hi as stated in the documentation here:

"As the web form loads, any proof_request entries referenced in this file (routes.yml) and defined in services.yml are executed and must be successful for the form to load. If a proof_request is referenced and the proof request fails, the form does not load and an error message is displayed. A referenced proof_request could fail either because no identifier is passed to the form (so no proof request to OrgBook is possible), or if the identified organization does not have the required active credential. Any attribute in the form's credential that has the same name as a claim in a prerequisite proof request is pre-populated with the value of the proven claim."

I don't see a way of configuring multiple proof_request entries and all examples in other issuers don't reference the additional proof_requests defined in the services.yml.

Am I missing something?

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.