Skip to content

feat(did): IdentityHub-based DidDocumentServiceClient for DID self-registration #2678

@wahidulazam

Description

@wahidulazam

What

Add DidDocumentServiceIdentityHubClient — a new implementation of the DidDocumentServiceClient SPI (spi/did-document-service-spi) that registers the DSP endpoint in an IdentityHub instance via its Identity Admin API.

Why

Today only one implementation of DidDocumentServiceClient exists:

Implementation Target Status
DidDocumentServiceDimClient SAP DIM / DIV
DidDocumentServiceIdentityHubClient IdentityHub ❌ missing

When tx.edc.iam.sts.dim.url is not set (DCP/IdentityHub mode), no DidDocumentServiceClient is registered. As a result, tx.edc.did.service.self.registration.enabled=true is a no-op — the DSP endpoint is never written to the DID Document and the DCP flow fails.

Discovered while testing tractusx-identityhub PR #244 against current main.

How

New module: edc-extensions/did-document/did-document-service-identity-hub/

Calls IdentityHub Identity Admin API (port 8082, X-Api-Key auth):

POST   /v1/unstable/participants/{contextId}/dids/{base64url-did}/endpoints?autoPublish=true
DELETE /v1/unstable/participants/{contextId}/dids/{base64url-did}/endpoints?serviceId={id}&autoPublish=true

New config:

tx.edc.ih.identity.api.url=
tx.edc.ih.participant.context.id=
tx.edc.ih.identity.api.key.alias=

Activates only when tx.edc.iam.sts.dim.url is unset — mutually exclusive with the DIM client.

References

  • edc-extensions/did-document/did-document-service-dim — reference impl
  • #tractusx-identityhub#244
  • #sig-release#1609 (R26.06 IdentityHub + Connector bundle)

/cc @lgblaumeiser @arnoweiss

I have already implemented it in my company's public repo and opened a pull request there. If you find everything right, I'll be happy to contribute. Here is the pull request link:
Federity-X#7

Update: implemented a better version here: Federity-X#8

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Open

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions