https://github.com/kiva/aries-controller
https://github.com/kiva/aries-controller
protocol protocol-backend
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/kiva/aries-controller
- Owner: kiva
- License: apache-2.0
- Created: 2020-11-05T18:18:26.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-02-03T14:29:03.000Z (over 3 years ago)
- Last Synced: 2024-04-13T09:17:37.239Z (about 2 years ago)
- Topics: protocol, protocol-backend
- Language: TypeScript
- Homepage:
- Size: 1.63 MB
- Stars: 4
- Watchers: 10
- Forks: 2
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.txt
Awesome Lists containing this project
README
# Aries Controller
This is the generic code that can be used in all controller implementations.
This is published as a npm package. Specific controllers can then pull in each module as needed.
This is also published as a docker image to dockerhub. This image can be run as a "demo-controller" with basic single-agent, multi-controller functionality.
Each controller can be set up as a single or multi controller, single controllers typically have custom code or extra security restrictions
that require them to be separate. Mutli controllers are easier to setup as a new controller can be added and configured via APIs without deploying
any new servers.
Each controller can also interact with single or multi agents (eg multitenant). Single agents are useful if there is just one agent that the controller
needs to control or there are extra security concerns. Multi agents are useful when a controller needs to control multi agents (e.g. an agency).
Any combination of single/multi controller/agent can exist, each with their own use cases
* Single-agent, single-controller - e.g. a big government issuer which custom processes
* Multi-agent, single-controller - e.g. an agency that's managing lots of agents
* Single-agent, multi-controller - e.g. FSPs or issuers that want the security of a standalone agent but doesn't want to set up its own controller
* Multi-agent, multi-controller - e.g. FSPs that just want the simplest way of interacting with the system without any additional setup
# Notes
- The developer is expected to bump the package.json version for each PR. When the PR is merged to main it will automatically publish a new package to npm and dockerhub.
- For local development you may not want to publish an npm package until you're sure things work. You can use `npm link` for this:
```
npm run build
cp package.json dist/package.json
npm link
```
And then in the folder you want to pull in the latest local code:
```
npm link aries-controller
```
This will link the aries-controller dependency code to the node_modules in the other repo.
When you are done testing, run `npm unlink`
- For local development using docker containers `npm link` won't work since symbolic links on the Mac won't work in a docker container.
Instead, you need to map the dist folder from your Mac into the node_modules in the container. Something like this (the relative path may vary):
```
volumes:
- ../aries-controller/dist:/www/node_modules/aries-controller
```