Skip to content

AbsaOSS/vcxagencynode

Repository files navigation

Decommission notice

This project has been decommissioned. No further updates or maintenance shall be expected.

Node VCX Agency

  • Implementation of AriesVCX compatible Mediator Agency.

  • Mediator Agency can service many users, providing them endpoint where 3rd parties can deliver encrypted messages. Assuming the sending party has properly end2end encrypted the message for recipient, according to Aries connection
    protocol, the agency itself can't decrypt content of received messages.

  • VCX Agency implements 2 notification mechanisms.

    1. Webhooks - The agency calls a specified url when an agent receives a message. This is useful when using AriesVcx on a server.
    2. Longpolls - Agent owners can poll agency to check whether any new messages have arrived. This is implemented via longpoll mechanism - the server returns response only if a new message has arrived, or certain amount of time has passed since the query request was received. This is to prevent overloading agency with client requests. In the future, longpoll mechanism might be replaced by websockets.

Repository structure

The agency implementation is in directory vcxagency-node.

Repository structure details:

/
├── dev/               # Monorepo management scripts
├── vcxagency-node /   # AriesVCX mediator agency implementation in NodeJS 
├── vcxagency-client/  # AriesVCX mediator agency client in NodeJS 
├── easy-indysdk/      # NodeJS idiomatic wrapper around basic IndySDK wrapper
└-- vcx-tester/        # AriesVCX integration tests using AriesVCX
  • Rust client for agency can be found here.

Note

  • Project is using yarn instead of npm to install dependencies in all modules. The reason is that npm has issues handling monorepo projects with file: style dependencies. See more info here npm/npm#13528

Copyright 2020 ABSA Group Limited

you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.