Skip to content

trustbloc/sandbox

Repository files navigation

Release License Godocs

Build Status codecov Go Report Card

sandbox

Sandbox contains the sample implementations of Issuer and Verifier/RP to demonstrate the following main features provided by the TrustBloc projects.

Projects

Follow this link to learn more about all the TrustBloc projects and APIs.

Sample Applications

Demo

Components

OpenAPI specifications

Build and Deployment

For pre-requisites, please refer TrustBloc k8s deployments. Also, refer for detailed steps to update components in sandbox.

The sandbox k8s is dependent on TrustBloc k8s. The TRUSTBLOC_CORE_K8S_COMMIT variable in Makefile points to the TrustBloc k8s deployment version. In case of any code/docker image changes to the underlying components, update the variable with k8s commit id. Alternatively, uncomment the symlink command to point it to the cloned TrustBloc k8s repo.

Run following target to run the components locally.

# builds the sandbox images, creates k8s cluster and deploys the trustbloc components
make build-setup-deploy

# pulls the sandbox images from remote registry, creates k8s cluster and deploys the trustbloc components 
make setup-deploy

# stops the k8s cluster
make minikube-down

# undeploys all the components without bringing down minikube
make undeploy-all

# deploys all the components provided minikube is up
make deploy-all

The SSL CA cert located inside ~/.trustbloc-k8s/local/certs/ need to be imported to system cert chain.

Refer Build and Deployment for more information

Automated testing

Use following targets to run the automation tests built using WebDriverIO. To run this, npm need to be installed in the system.

# runs tests for configurations in ./test/ui-automation/wdio.conf.js (by default, it runs against local deployment)
make automation-test

# runs tests against locally deployed k8s cluster
make automation-test-local

# runs tests against cloud deployed dev k8s cluster 
make automation-test-dev

Workaround for connection issues when using a VPN on macOS

Certain VPNs (on the host machine) have known issues with port conflicts when using the Hyperkit driver. The Hyperkit driver is used when running on an x86-64 machine.

If disabling the VPN is not possible, one workaround is to use the docker driver along with the docker-mac-net-connect brew service.

To do this:

  1. Install the brew docker-mac-net-connect service: brew install chipmk/tap/docker-mac-net-connect.
  2. Start the service: sudo brew services start chipmk/tap/docker-mac-net-connect. Note: must be started with root permissions.
  3. Change the driver to docker in the minikube_setup.sh script.

Contributing

Thank you for your interest in contributing. Please see our community contribution guidelines for more information.

License

Apache License, Version 2.0 (Apache-2.0). See the LICENSE file.