Skip to content

Conversation

@paullatzelsperger
Copy link
Member

@paullatzelsperger paullatzelsperger commented Jan 31, 2025

What this PR changes/adds

This PR adds several APIs that are intended to be the "management" or "admin" API of the IssuerService.

These are:

  • Participant API: used to manipulate participant accounts in the IssuerService
  • Credentials API: used to query and revoke credentials of a participant
  • Attestation API: used to manipulate the attestations that are available in IssuerService, and associate them with participants

Why it does that

defining the API for third-party integrations

Further notes

  • all APIs listed here are skeletons at the moment. vertical implementations as well as tests will follow later
  • the name "admin" API is a working title. open to suggestions :)
  • for key operations and DID document resolution we will likely re-use the existing APIs from IdentityHub

Who will sponsor this feature?

Please @-mention the committer that will sponsor your feature.

Linked Issue(s)

Closes # <-- insert Issue number if one exists

Please be sure to take a look at the contributing guidelines and our etiquette for pull requests.

@paullatzelsperger paullatzelsperger added enhancement New feature or request api labels Jan 31, 2025
@paullatzelsperger paullatzelsperger force-pushed the feat/add_issuer_admin_api branch from 32872aa to 0aca965 Compare January 31, 2025 07:20
@paullatzelsperger paullatzelsperger force-pushed the feat/add_issuer_admin_api branch from 0aca965 to 8055a3e Compare January 31, 2025 07:21
Copy link

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

content = @Content(array = @ArraySchema(schema = @Schema(implementation = ApiErrorDetail.class)), mediaType = "application/json"))
}
)
CredentialStatusResponse checkRevocationStatus(String participantId, String credentialId);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'participantId' is never used.
content = @Content(array = @ArraySchema(schema = @Schema(implementation = ApiErrorDetail.class)), mediaType = "application/json"))
}
)
CredentialStatusResponse checkRevocationStatus(String participantId, String credentialId);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'credentialId' is never used.
content = @Content(array = @ArraySchema(schema = @Schema(implementation = ApiErrorDetail.class)), mediaType = "application/json"))
}
)
Response addParticipant(AddParticipantRequest participant);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'participant' is never used.
content = @Content(array = @ArraySchema(schema = @Schema(implementation = ApiErrorDetail.class)), mediaType = "application/json"))
}
)
Response updateParticipant(UpdateParticipantRequest participant);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'participant' is never used.
content = @Content(array = @ArraySchema(schema = @Schema(implementation = ApiErrorDetail.class)), mediaType = "application/json"))
}
)
List<GetParticipantResponse> queryParticipants(QuerySpec querySpec);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'querySpec' is never used.
content = @Content(array = @ArraySchema(schema = @Schema(implementation = ApiErrorDetail.class)), mediaType = "application/json"))
}
)
Response createAttestation(AttestationRequest attestationRequest);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'attestationRequest' is never used.
content = @Content(array = @ArraySchema(schema = @Schema(implementation = ApiErrorDetail.class)), mediaType = "application/json"))
}
)
Response linkAttestation(String participantId, String attestationId);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'attestationId' is never used.
content = @Content(array = @ArraySchema(schema = @Schema(implementation = ApiErrorDetail.class)), mediaType = "application/json"))
}
)
Response deleteAttestation(String participantId, String attestationId);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'participantId' is never used.
content = @Content(array = @ArraySchema(schema = @Schema(implementation = ApiErrorDetail.class)), mediaType = "application/json"))
}
)
Response deleteAttestation(String participantId, String attestationId);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'attestationId' is never used.
content = @Content(array = @ArraySchema(schema = @Schema(implementation = ApiErrorDetail.class)), mediaType = "application/json"))
}
)
AttestationResponse getAttestations(String participantId);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'participantId' is never used.
content = @Content(array = @ArraySchema(schema = @Schema(implementation = ApiErrorDetail.class)), mediaType = "application/json"))
}
)
AttestationResponse queryAttestations(QuerySpec query);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'query' is never used.
@paullatzelsperger paullatzelsperger force-pushed the feat/add_issuer_admin_api branch 3 times, most recently from 7d0ca9f to 0851f9f Compare January 31, 2025 07:46
@paullatzelsperger paullatzelsperger marked this pull request as ready for review January 31, 2025 07:57
@paullatzelsperger paullatzelsperger force-pushed the feat/add_issuer_admin_api branch from 0851f9f to b17f56a Compare January 31, 2025 07:57
@paullatzelsperger paullatzelsperger merged commit 7834bad into eclipse-edc:main Jan 31, 2025
17 checks passed
@paullatzelsperger paullatzelsperger deleted the feat/add_issuer_admin_api branch January 31, 2025 09:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants