Giter VIP home page Giter VIP logo

aries-cloudapi-python's Introduction

Codacy Badge Codacy Badge

aries-cloudapi-python

WIP

โš ๏ธ This is currently initial development work in progress. Please, do not use this in production.

Overview

This project is a essentially comprises of a FastAPI app around the hyperledger aries stack primarily tailored around YOMA-specific use cases. The FastAPI app serves as a wrapper around common workflows for real-life applications of the stack. You can think of it as a wrapper, a form of middleware, or interface for client applications (for instance a mobile app) and the backend stack (using Aries Cloudcontroller under the hood and Aca-py in the back - like a mullet). The aim is to facilitate a client's workflow by providing some convenience API endpoints for common workflows like creating wallets, managing wallets, their connections, and credentials, proofs and workflows. What is multiple API calls to the AriesCloudAgent can often be achieved with a single call via this API. For example, you want to create a wallet, which involves writing to the ledger, waiting for the result, getting and accepting a TAA, creating a DID and creating the wallet itself can be done in a single blow - how convenient, isn't it.

How to run it

Running it is pretty straight forward - it's all containers. Simply run ./manage up or make start from the root of the project. This should spin up and provision all you need. You can visit localhost:8000/api/doc for the swagger docs and start playing about.

If you are familiar with Make you can also have a look in the Makefile to find some handy methods for running the project.

Requirements

There are some requirements for running the project, namely Docker and docker-compose as well as being able to run a POSIX shell (e.g. sh or bash).

In order to install Docker follow the instructions for your operating on their official docs.

Proceed to follow the instructions for docker-compose corollary on their docs.

If you experience any issues running the project, please, feel free to reach out by e.g. opening an issue or contacting one of the contributors.

Docs

You can find more detailed documentation in the ./docs folder. Most useful will be the intro and workflow sections.

Contributing

Although this project is foremost developed to fit the needs of YOMA it eventually is an open-source project that hopefully can get picked up and used for other aries-hyperledger projects as well. We do welcome contributions from anyone. Feel free to engage in discussions, create a PR against a ticket or open an issue yourself following the GitHub guidelines.

Running tests

The tests use pytest. For convenience use GNU Make to run them. First ensure the project is running locally by running make start. In another shell you can now run make tests to run all tests or make unit-tests to run only the unit tests.

Without using make you can run:

./manage up

to start the containers and run the tests with

pytest .

or only the unit tests with:

pytest --ignore=app/tests/e2e

aries-cloudapi-python's People

Contributors

morrieinmaas avatar vineeth14 avatar timoglastra avatar lohanspies avatar michaelwiles avatar kentoseth avatar wip-abramson avatar dependabot[bot] avatar

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.