GithubHelp home page GithubHelp logo

gqadonis / ssi-service Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tbd54566975/ssi-service

0.0 0.0 0.0 519 KB

The Self Sovereign Identity Service

License: Apache License 2.0

Go 99.72% Dockerfile 0.28%

ssi-service's Introduction

godoc ssi-service go version 1.17.6 license Apache 2 issues push

ssi-service

Introduction

The Self Sovereign Identity Service (SSIS) facilitates all things relating to DIDs and Verifiable Credentials -- in a box! The service is a part of a larger Decentralized Web Platform architecture which you can learn more about in our collaboration repo. The SSI Service is a RESTful web service that wraps the ssi-sdk. The core functionality of the SSIS includes, but is not limited to: interacting with the standards around Verifiable Credentials, Credential Revocations, requesting Credentials, exchanging Credentials, data schemas for Credentials and other verifiable data, messaging using Decentralized Web Nodes, and usage of Decentralized Identifiers. Using these core standards, the SSIS enables robust functionality to facilitate all verifiable interactions such as creating, signing, issuing, curating, requesting, revoking, exchanging, validating, verifying credentials in varying degrees of complexity.

ssi-sdk

Configuration

Configuration is managed using a TOML file. There are sets of configuration values for the server (e.g. which port to listen on), the services (e.g. which database to use, and each service. Each service may define specific configuration, such as which DID methods are enabled for the DID service.

Build & Test

This project uses mage, please view CONTRIBUTING for more information.

After installing mage, you can build and test the SDK with the following commands:

mage build
mage test

A utility is provided to run clean, build, and test in sequence with:

mage cbt

Continuous Integration

CI is managed via GitHub Actions. Actions are triggered to run for each Pull Request, and on merge to main. You can run CI locally using a tool like act.

Deployment

The service is packaged as a Docker container, runnable in a wide variety of environments. Docker Compose is used for simplification and orchestration. To run the service, you can use the following command, which will start the service on port 8080:

mage run

Or, you can run docker-compose yourself:

cd build && docker-compose up 

You should then be able to send requests as follows:

 ~ curl localhost:8080/health
{"status":"OK"}

What's Supported?

Design Thinking

The design of the service, at present, assumes it will be run by a single entity. Additional work is needed around authentication and authorization schemes to access the service and its functionalities, possible User Interfaces to use the service, and much more! Please open a discussion if you are interested in helping shape the future of this project.

Contributing

This project is fully open source, and we welcome contributions! For more information please see CONTRIBUTING. Our current thinking about the development of the library is captured in GitHub Issues.

Project Resources

Resource Description
CODEOWNERS Outlines the project lead(s)
CODE_OF_CONDUCT.md Expected behavior for project contributors, promoting a welcoming environment
CONTRIBUTING.md Developer guide to build, test, run, access CI, chat, discuss, file issues
GOVERNANCE.md Project governance
SECURITY.md Vulnerability and bug reporting
LICENSE Apache License, Version 2.0

ssi-service's People

Contributors

decentralgabe avatar dependabot[bot] avatar angiejones avatar alrubinger avatar mistermoe 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.