{"id":25417309,"url":"https://github.com/hyperledger-identus/cloud-agent","last_synced_at":"2025-04-12T22:22:55.444Z","repository":{"id":191869046,"uuid":"512835706","full_name":"hyperledger-identus/cloud-agent","owner":"hyperledger-identus","description":"Identus Cloud Agent","archived":false,"fork":false,"pushed_at":"2025-04-10T18:57:30.000Z","size":80439,"stargazers_count":84,"open_issues_count":55,"forks_count":26,"subscribers_count":27,"default_branch":"main","last_synced_at":"2025-04-10T18:57:57.685Z","etag":null,"topics":["identus","scala","ssi"],"latest_commit_sha":null,"homepage":"https://identus.io/","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyperledger-identus.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-11T16:42:39.000Z","updated_at":"2025-04-09T08:40:42.000Z","dependencies_parsed_at":"2023-10-20T12:58:27.705Z","dependency_job_id":"4c0c6eb5-73fd-4f8d-821e-2bd22f81e417","html_url":"https://github.com/hyperledger-identus/cloud-agent","commit_stats":null,"previous_names":["input-output-hk/atala-prism-building-blocks","hyperledger-identus/cloud-agent","hyperledger/identus-cloud-agent"],"tags_count":261,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperledger-identus%2Fcloud-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperledger-identus%2Fcloud-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperledger-identus%2Fcloud-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperledger-identus%2Fcloud-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperledger-identus","download_url":"https://codeload.github.com/hyperledger-identus/cloud-agent/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248280753,"owners_count":21077416,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["identus","scala","ssi"],"created_at":"2025-02-16T17:13:52.697Z","updated_at":"2025-04-12T22:22:55.419Z","avatar_url":"https://github.com/hyperledger-identus.png","language":"Scala","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.lfdecentralizedtrust.org/projects/identus\"\u003e\n    \u003cimg src=\"docs/images/logos/identus-logo.svg\" alt=\"identus-logo\" width=\"513px\" height=\"99px\" /\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  \u003ci\u003e \u003cfont size=\"18\"\u003eCloud Agent\u003c/font\u003e \u003c/i\u003e\n  \u003cbr\u003e\n  \u003cbr\u003e\n  \u003ca href='https://coveralls.io/github/hyperledger-identus/cloud-agent?branch=main'\u003e\u003cimg src='https://coveralls.io/repos/github/hyperledger-identus/cloud-agent/badge.svg?branch=main' alt='Coverage Status' /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/hyperledger-identus/cloud-agent/actions/workflows/unit-tests.yml\"\u003e \u003cimg src=\"https://github.com/hyperledger-identus/cloud-agent/actions/workflows/unit-tests.yml/badge.svg\" alt=\"Unit tests\" /\u003e \u003c/a\u003e\n  \u003ca href=\"https://github.com/hyperledger-identus/cloud-agent/actions/workflows/integration-tests.yml\"\u003e \u003cimg src=\"https://github.com/hyperledger-identus/cloud-agent/actions/workflows/integration-tests.yml/badge.svg\" alt=\"End-to-end tests\" /\u003e \u003c/a\u003e\n  \u003ca href=\"https://github.com/hyperledger-identus/cloud-agent/actions/workflows/performance-tests.yml\"\u003e \u003cimg src=\"https://github.com/hyperledger-identus/cloud-agent/actions/workflows/performance-tests.yml/badge.svg\" alt=\"Performance tests\" /\u003e \u003c/a\u003e\n  \u003ca href=\"https://index.scala-lang.org/scala-steward-org/scala-steward\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/Scala_Steward-helping-blue.svg?style=flat\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAMAAAARSr4IAAAAVFBMVEUAAACHjojlOy5NWlrKzcYRKjGFjIbp293YycuLa3pYY2LSqql4f3pCUFTgSjNodYRmcXUsPD/NTTbjRS+2jomhgnzNc223cGvZS0HaSD0XLjbaSjElhIr+AAAAAXRSTlMAQObYZgAAAHlJREFUCNdNyosOwyAIhWHAQS1Vt7a77/3fcxxdmv0xwmckutAR1nkm4ggbyEcg/wWmlGLDAA3oL50xi6fk5ffZ3E2E3QfZDCcCN2YtbEWZt+Drc6u6rlqv7Uk0LdKqqr5rk2UCRXOk0vmQKGfc94nOJyQjouF9H/wCc9gECEYfONoAAAAASUVORK5CYII=\" alt=\"Scala Steward badge\"\u003e\n  \u003c/a\u003e\n\n\n\u003c/p\u003e\n\u003chr\u003e\n\n## Overview\n\nThe Cloud Agent is a W3C/Aries standards-based cloud agent written in Scala that provides self-sovereign identity services to build products and solutions based on it. The term \"cloud\" indicates that it operates on servers and is not intended for use on mobile devices.\n\nCloud Agent supports standard-based protocols built on top of DIDComm V2 for issuing, verifying, and holding verifiable credentials using both JWT and Hyperledger AnonCreds (coming soon) formats.\n\nIn order to use the Cloud Agent, you establish a business logic controller responsible for communicating with the agent (initiating HTTP requests and processing webhook notifications). This controller can be created using any programming language capable of sending and receiving HTTP requests.\n\nAs a result, you can concentrate on crafting self-sovereign identity solutions using well-known web development tools, without the need to delve into the intricacies of lower-level cryptography and identity protocol internals.\n\n## User documentation\n\nAll documentation, tutorials and API references for the Identus ecosystem can be found at [https://hyperledger-identus.github.io/docs/](https://hyperledger-identus.github.io/docs/)\n\n## Features\n\n* Rest API\n* DIDComm V2\n* W3C-compliant `did:prism` and `did:peer` methods\n* Credential types\n  * JWT-VC\n  * SD-JWT-VC\n  * AnonCreds\n* HTTP events notification\n* Cardano as a distributed ledger\n* Secrets management with Hashicorp vault\n* Multi-tenancy\n\n## Example use cases\n\n* A government issues verifiable credentials (VCs) to its citizens to prove their identity and access government services.\n* An enterprise issues VCs to its employees to prove their employment and access enterprise services.\n* A Web3 authentication service based on verifiable presentations (VPs).\n\n## Getting started\n\n### Understanding SSI\n\nBefore starting to use the Cloud Agent, it is important to understand the basic concepts of self-sovereign identity (SSI). The following resources provide a good introduction to SSI:\n\n* [Identus SSI introduction](https://hyperledger-identus.github.io/docs/home/category/concepts)\n* [Linux Foundation Course: Getting Started with SSI](https://www.edx.org/learn/computer-programming/the-linux-foundation-getting-started-with-self-sovereign-identity)\n\n### Architecture\n\nThe next diagrams offer a concise architectural overview, depicting a Cloud Agent instance, a controller, the interconnections linking the controller and agent, as well as the external routes to other agents and public ledgers across the Internet.\n\n#### Identus Ecosystem Architecture\n\n![Identus Architecture](docs/images/identus-architecture-dark.png#gh-dark-mode-only)\n![Identus Architecture](docs/images/identus-architecture-light.png#gh-light-mode-only)\n\n#### Identus Cloud Agent Architecture\n\n![Identus Cloud Agent Architecture](docs/images/identus-cloud-agent-architecture-dark.png#gh-dark-mode-only)\n![Identus Cloud Agent Architecture](docs/images/identus-cloud-agent-architecture-light.png#gh-light-mode-only)\n\n### Running the Cloud Agent locally on MacOS or Linux\n#### Prerequisites\n\n- Java (OpenJDK 21)\n- SBT (latest version)\n- Git (for cloning the repository)\n- Docker (for running the PostgreSQL database, Hashicorp Vault, APISIX, and  PRISM Node)\n\n#### Compile, Test, create the docker image of the Cloud Agent\n\nTo compile, test and publish local the image of the Cloud Agent, you can use the following commands:\n\n```bash\nsbt clean compile test docker:publishLocal\n```\n\n### Installation and usage\n\nCloud Agent is distributed as a Docker image to be run in a containerized environment. Versions after v1.31.0 can be found [here](https://github.com/hyperledger-identus/cloud-agent/pkgs/container/identus-cloud-agent) and before v1.31.0, [there](https://github.com/orgs/input-output-hk/packages/container/package/prism-agent).\n\nThe following sections describe how to run the Cloud Agent in different configurations.\n\n#### Configuration\n\nThe Cloud Agent can be configured to use different types of ledger, secret storage and DID persistence. Any combination of options is available, but the most common configurations are:\n\n| Configuration  | Secret Storage | DIDs persistence | Prism Node                                      |\n|----------------|----------------|------------------|-------------------------------------------------|\n| Dev            | PostgreSQL     | No               | In-memory                                       |\n| Pre-production | PostgreSQL     | Yes              | Distributed Ledger testnet (preview or preprod) |\n| Production     | Hashicorp      | Yes              | Distributed Ledger mainnet                      |\n\nTo start playing with Cloud Agent, we recommend using the Dev configuration. Pre-production and production configurations are intended for real-world use cases and require additional more complex configurations of the Distributed Ledger stack setup.\n\n\u003e If you're interested in a hosted version of Cloud Agent, please, contact us via the [Identus site](https://www.lfdecentralizedtrust.org/projects/identus).\n\n#### System requirements\n\nSystem requirements can vary depending on the use case. The following are the minimum requirements for running the Cloud Agent with the Dev configuration:\n\n* Linux or MacOS operating system\n* Docker (with docker-compose support)\n* Modern x86 or ARM-based CPU\n* \\\u003e=2GB RAM\n\n#### Running locally in demo mode\n\nTo run Identus locally you should follow the instructions in the [Quickstart guide](https://hyperledger.github.io/identus-docs/docs/quick-start/)\n\nIf the Cloud Agent is started successfully, all the running containers should achieve `Healthy` state, and Cloud Agent Rest API should be available at the specified port, for example:\n* `http://localhost:8080/cloud-agent` for the `issuer` instance\n* `http://localhost:8090/cloud-agent` for the `holder` instance\n\nYou can check the status of the running containers using the [health endpoint](https://hyperledger.github.io/identus-docs/agent-api/#tag/System/operation/systemHealth):\n```bash\n$ curl http://localhost:8080/cloud-agent/_system/health\n{\"version\":\"1.19.1\"}\n```\n\n#### Simple docker compose for running the Identus Platform\n\nThe Identus Platform is a set of services that work together to provide a complete SSI solution.\nThe following services are included in the Identus Platform:\n- Cloud Agent\n- Mediator\n\nThe docker compose file and documentation for running the full stack with the simplest configuration (single tenant without authentication) is available [here](https://github.com/hyperledger/identus/blob/main/identus-docker/dockerize-identus.md)\n\n#### Compatibility between Cloud Agent and  PRISM Node\n\nThere could be some incompatibilities between the most latest versions of Cloud Agent and  PRISM Node. Please, use the following table to check the compatibility between the versions:\n\n| Cloud Agent | PRISM Node |\n|-------------|------------|\n| \u003e=1.9.2     | 2.2.1      |\n| \u003c1.9.2      | 2.1.1      |\n\n\u003e Please note: it is not guaranteed that the latest version of Cloud Agent will work with the latest version of PRISM Node. We recommend using the versions from the table above.\n\n### Following the Cloud Agent tutorials\n\nThe following tutorials will help you get started with the Cloud Agent and issue your first credentials:\n\n* [Creating, updating and deactivating Decentralized Identifiers (DIDs)](https://hyperledger.github.io/identus-docs/tutorials/category/dids/)\n* [Setting up connections between agents using out-of-band (OOB) protocol](https://hyperledger.github.io/identus-docs/tutorials/connections/connection)\n* [Issuing verifiable credentials (VCs)](https://hyperledger.github.io/identus-docs/tutorials/credentials/didcomm/issue)\n* [Presenting VC proofs](https://hyperledger.github.io/identus-docs/tutorials/credentials/didcomm/present-proof)\n\n## Contributing\n\nPlease read our [contributions guidelines](./CONTRIBUTING.md) and submit your PRs. We enforce [developer certificate of origin (DCO) commit signing](./DCO.md).\n\nWe also welcome issues submitted about problems you encounter in using Cloud Agent.\n\n## License\n\n[Apache License Version 2.0](LICENSE)\n\n\u003chr\u003e\n\n**Love the repo? Give our repo a star :star: :arrow_up:.**\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperledger-identus%2Fcloud-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperledger-identus%2Fcloud-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperledger-identus%2Fcloud-agent/lists"}