Skip to content

Commit 8c5f7d1

Browse files
committed
Merge remote-tracking branch 'upstream/main' into fix/credo-boundary-type-suppressions
Signed-off-by: cynox-66 <devj2311@gmail.com> # Conflicts: # heka-identity-service/src/common/did-registrar/did-registrar.service.ts # heka-identity-service/src/revocation/status-list/status-list.service.ts
2 parents 9dbc5ab + 2abff8b commit 8c5f7d1

81 files changed

Lines changed: 2441 additions & 1537 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,6 @@ node_modules/
5454

5555
# Intellij IDEs
5656
.idea
57+
58+
# Auto-generated files
59+
.yarn/install-state.gz

README.md

Lines changed: 61 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,81 @@ The Heka Identity Platform is intended to speed up adoption of decentralized ide
1111

1212
## Core Components
1313

14-
The Heka Identity Platform delivers a complete decentralized identity solution composed of two primary applications:
14+
The platform is composed of the following components:
1515

16-
1. **Mobile Wallet (Verifiable Credentials Holder)**: A cross-platform mobile application (built with React Native) for end users to receive, store, and present verifiable credentials.
17-
2. **Identity Service**: A backend service (built with NestJS) that primarily acts as a Verifiable Credentials Issuer and Verifier, while also supporting Holder capabilities for cloud (custodial) wallet scenarios.
16+
- **[Heka Wallet](./heka-wallet)** (Verifiable Credentials Holder): Cross-platform mobile application (built with React Native) for end users to receive, store, and present verifiable credentials.
17+
- **[Identity Service](./heka-identity-service)**: Backend service (built with NestJS) that primarily acts as a Verifiable Credentials Issuer and Verifier, while also supporting Holder capabilities for cloud (custodial) wallet scenarios.
18+
- **[Identity Service Web UI](./heka-identity-service-web-ui)**: Web UI application for Identity Service — allows managing schemas, credential templates, and issuance / verification flows.
19+
- **[Auth Service](./heka-auth-service)**: Authentication service used by the Identity Service for tenant and user authentication.
1820

1921
The implementation is based on the **DSR SSI Toolkit** and leverages well-established open-source frameworks: **OWF Credo** and **OWF Bifold**.
2022

21-
## Scope and Supported Standards
23+
## High-level Architecture
24+
25+
```mermaid
26+
flowchart LR
27+
Wallet[Heka Wallet<br/>Holder]
28+
WebUI[Identity Service Web UI<br/>Issuer / Verifier Client]
29+
Auth[Auth Service]
30+
IS[Identity Service<br/>Issuer / Verifier Wallet]
31+
Hedera[(Hiero / Hedera Ledger)]
32+
33+
WebUI -->|login / register| Auth
34+
WebUI -->|REST API + JWT| IS
35+
Auth -.->|issues JWTs trusted by| IS
36+
Wallet <-->|OID4VC / DIDComm| IS
37+
IS -->|DIDs / AnonCreds Resources| Hedera
38+
Wallet -->|DIDs and AnonCreds Resources resolution| Hedera
39+
```
40+
41+
## Getting Started
42+
43+
Each component is set up and run independently. For specific setup and configuration steps, please refer to specific README files in component folders.
44+
45+
The recommended approach for exploring the platform is the following:
46+
- Set up and get familiar with core functional components - [Identity Service](./heka-identity-service) and [Heka Wallet (Mobile application)](./heka-wallet)
47+
- Explore the [Identity Service Web UI](./heka-identity-service-web-ui) and [Auth Service](./heka-auth-service) components. These are more general-purpose applications that still represent a crucial piece for complete experience and testing capabilities
48+
- Once you get familiar with the baseline functionality of a platform, feel free to check out the [demo folder](./demo) to explore various decentralized identity use cases implemented with Heka Identity Platform
49+
50+
## Supported Identity Standards
2251

2352
The platform supports a wide range of global decentralized identity standards, including:
2453

25-
- **Protocols**: OpenID4VC, DIDComm
26-
- **Credential Formats**: W3C Verifiable Credentials, SD-JWT VC, ISO mDL, Hyperledger AnonCreds
27-
- **DID Methods**: Multiple DID methods, including Hiero / Hedera-based DIDs
54+
- **Credential Exchange Protocols**: OpenID for Verifiable Credentials (OID4VC), DIDComm
55+
- **Credential Formats**: W3C VC-JWT, W3C VC-JWT JSON-LD, W3C VC with Linked Data Proofs, IETF SD-JWT VC, ISO mDoc (mDL), Hyperledger AnonCreds
56+
- **DID Methods**: `did:key`, `did:peer`, `did:jwk`, `did:web`, `did:indy` (Hyperledger Indy), `did:hedera` (Hiero / Hedera), `did:indybesu` (Indy Besu ledger)
57+
58+
## Agentic AI Integration
59+
60+
Apart from providing support for standard decentralized identity flows, the platform aims to enable use cases that emerge from synergy between identity and Agentic AI.
61+
This includes (but is not limited to) VC-based trust models for AI agents and the Agentic Economy.
62+
63+
Initial supported use cases:
64+
65+
- **VC-based authorization for agents**: [OID4VP In-Task Authorization Extension for Agent2Agent (A2A) protocol](https://github.com/DSRCorporation/a2a-oid4vp-in-task-auth-extension/blob/main/v1/spec.md)
66+
67+
## Roadmap
68+
69+
See [roadmap](./ROADMAP.md) for the platform's planned scope and timeline — covering core maintenance, emerging protocol support, AI / agentic economy integrations, and other development directions.
2870

2971
## Demos
3072

3173
Please see the [demo folder](./demo) to explore demos showcasing various decentralized identity use cases implemented with Heka Identity Platform.
3274

3375
- [Agent-to-Agent (A2A) + OID4VP integration](./demo/a2a-oid4vp): A demo showcasing OID4VP-based authentication for AI agents leveraging Agent2Agent (A2A) protocol
3476

77+
Also, feel free to explore Heka-based demos available on YouTube:
78+
79+
- [Agent2Agent interactions with Just-In-Time authorization via OpenID for Verifiable Credentials](https://www.youtube.com/watch?v=3JgFZBGXXXI)
80+
81+
## Hiero Identity Community
82+
83+
For details and references on how to engage with the Hiero Identity community, please see [Hiero Identity Collaboration Hub repo](https://github.com/hiero-ledger/identity-collaboration-hub).
84+
85+
### LFDT mentorship program
86+
87+
Heka Identity Platform is a core component for an upcoming LFDT mentorship project - [Hiero Contributor Identity Verification Prototype](https://mentorship.lfx.linuxfoundation.org/project/64c64daa-ffdb-4871-82f5-01c1bdc7fecc/).
88+
3589
## Governance
3690

3791
The Heka Identity Platform operates under the governance of the **Hiero Technical Steering Committee (TSC)**, in alignment with existing Hiero project policies.

ROADMAP.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Heka Identity Platform Roadmap
2+
3+
> **Note** The roadmap reflects the current development plan and is subject to change.
4+
5+
## Scope
6+
7+
- Core maintenance, platform updates and community support
8+
- Adoption and support for emerging protocols and standards (keeping up with evolving industry)
9+
- Foundational support for modern AI & agentic economy use cases and protocols (AP2 + x402, ERC-8004, etc.)
10+
- Continued prototyping and integration of identity solutions in Hiero ecosystem (Contributor Identity Verification mentorship program, Hiero-specific identity features and cross-project integrations)
11+
- Support for enterprise adoption and use cases
12+
- Advanced ZKP support (Longfellow ZKP, etc.)
13+
14+
## Timeline
15+
16+
```mermaid
17+
timeline
18+
Q2 2026 : Platform and dependencies updates
19+
: Documentation improvements
20+
: Heka Identity Platform LFDT workshop
21+
: Hiero Contributor Identity Verification Prototype — LFDT mentorship kick-off
22+
: Digital Credentials API (DC API) support
23+
Q3 2026 : ERC-8004
24+
: AP2 credentials
25+
: SSO via SSI support + WebUI demo
26+
: HBAR wallet integration for Heka Wallet
27+
Q4 2026 and beyond : Hiero Contributor Identity Verification Prototype — LFDT mentorship completion, verification flow integration and improvements
28+
: Support for Longfellow ZK in Heka Wallet and Identity Service (mDL)
29+
: "First-class citizen" support for issuance in Heka Wallet
30+
: DeRec protocol support for Heka Wallet (backup and recovery)
31+
```

demo/a2a-oid4vp/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ The agent is configured to require the user to present a verifiable credential v
1616
The following mapping applies for roles/parties described in [OID4VP In-Task Authentication extension spec](https://github.com/DSRCorporation/a2a-oid4vp-in-task-auth-extension/blob/main/v1/spec.md):
1717
- A2A Client → [CLI client](src/cli.ts)
1818
- A2A Server → [Demo Agent Server](src/agent/index.ts)
19-
- OID4VP Wallet → [Heka Mobile Wallet](../../heka-wallet)
19+
- OID4VP Wallet → [Heka Wallet](../../heka-wallet)
2020
- OID4VP Verifier → [Heka Identity Service](../../heka-identity-service)
2121

2222
**High-level demo flow:**
@@ -34,7 +34,7 @@ sequenceDiagram
3434
Agent->>HIS: (2.1) Create Verification Session (OID4VP)
3535
HIS-->>Agent: (2.2) Authorization Request Metadata
3636
Agent->>CLI: (2.3) Status Update (state: auth-required + metadata)
37-
CLI->>Wallet: (3) Invoke Wallet (Out-of-band / DidComm)
37+
CLI->>Wallet: (3) Invoke Wallet (Out-of-band / DIDComm)
3838
Wallet->>User: (4.1) Display Authorization Request
3939
User->>Wallet: (4.2) Confirm Presentation
4040
Wallet->>HIS: (4.3) Submit Verifiable Presentation (OID4VP direct_post)
@@ -81,7 +81,7 @@ However, there are values that need to be manually set up:
8181

8282
Other supported values:
8383
- `DEMO_AGENT_PORT` - Port to be used by the Demo Agent server, defaults to `10003`
84-
- `CLI_CLIENT_PORT` - Port to be used by CLI Client inbound transport (DidComm inbound transport, used for Mobile Wallet invocation), defaults to `3010`
84+
- `CLI_CLIENT_PORT` - Port to be used by CLI Client inbound transport (DIDComm inbound transport, used for Heka Wallet invocation), defaults to `3010`
8585
- `IDENTITY_SERVICE_URL` - URL of local instance of Heka Identity Service, defaults to `http://localhost:3000`. Must be changed if host, port, or API prefix configuration of the instance differs from default values
8686
- `IDENTITY_SERVICE_ACCESS_TOKEN` - Heka Identity Service API token, default value is a demo token with extremely long validity period. Must be changed if JWT configuration for Heka Identity Service instance was changed
8787

@@ -168,7 +168,7 @@ In a second terminal, start the CLI Client:
168168
yarn client
169169
```
170170

171-
The CLI Client will start an inbound DidComm transport that will use port 3010 (can be changed using `CLI_CLIENT_PORT` env variable).
171+
The CLI Client will start an inbound DIDComm transport that will use port 3010 (can be changed using `CLI_CLIENT_PORT` env variable).
172172

173173
### 7. Try out integration with the Agent
174174

@@ -181,7 +181,7 @@ mechanics of leveraging Heka Identity Platform for Agent-to-Agent (A2A) protocol
181181
it is critical to treat any agent operating outside of your direct control as a
182182
potentially untrusted entity.
183183

184-
The demonstrated flow involves usage of OID4VP Response Mode `direct_post` that is vulnerable to Session Fixation attacks ([Ref](https://openid.net/specs/openid-4-verifiable-presentations-1_0.html#name-session-fixation)). Production deployments must provide an additonal security mechanism to prevent such attacks.
184+
The demonstrated flow involves usage of OID4VP Response Mode `direct_post` that is vulnerable to Session Fixation attacks ([Ref](https://openid.net/specs/openid-4-verifiable-presentations-1_0.html#name-session-fixation)). Production deployments must provide an additional security mechanism to prevent such attacks.
185185

186186
All data received from an external agent—including but not limited to its AgentCard,
187187
messages, artifacts, and task statuses—should be handled as untrusted input. For

heka-auth-service/Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ COPY package*.json yarn.lock ./
88

99
RUN yarn install
1010
COPY . .
11-
RUN yarn test
1211
RUN yarn build
1312

1413
FROM node:18-bookworm-slim

0 commit comments

Comments
 (0)