Skip to content

feat: Add commandline interface that manages credential_configurations#14

Merged
berkes merged 1 commit into
mainfrom
feature/credential-configurations-management
Jun 3, 2026
Merged

feat: Add commandline interface that manages credential_configurations#14
berkes merged 1 commit into
mainfrom
feature/credential-configurations-management

Conversation

@berkes

@berkes berkes commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

It manages these on the oidc4vci service.
Implemented with ssi-agent details.

Adds a command and subcommand structure to allow for more cli actions.

@berkes berkes requested a review from ThomasKalverda June 3, 2026 11:14
@berkes berkes self-assigned this Jun 3, 2026
Comment thread src/credential_configurations/credential_configurations_client_port.py Dismissed
Comment thread src/credential_configurations/credential_configurations_client_port.py Dismissed
Comment thread src/credential_configurations/credential_configurations_client_port.py Dismissed
Comment thread src/credential_configurations/credential_configurations_client_port.py Dismissed
Comment thread src/credential_configurations/credential_configurations_client_port.py Dismissed
Comment thread src/sysadmin/sysadmin_port.py Dismissed
@berkes

berkes commented Jun 3, 2026

Copy link
Copy Markdown
Contributor Author

@ThomasKalverda zoals beloofd, een PR die een nieuwe feature introduceert op de issuer.

Context

De oid4vci agent (unime core, aka ssi-agent, de service van impierce) vereist dat we zgn credential-configurations aanmaken. Deze zijn onderdeel van de "openid credential issuer metadata", http://issuer.example.com/.well-known/openid-credential-issuer . In de OIDC4VCI (uitgeven van credentials aan wallets) en in de OIDC4VP flow (verifien van credentials). Zo gebruikt de wallet deze bijv om te achterhalen welke encryptie algs en methods mogelijk zijn. En gebruikt de wallet het om een credential weer te geven.
En gebruikt een verifier deze om bijv te achterhalen welke attributen (claims) er zijn en wat ze betekenen enzovoort.

Implementatie details

Unime heeft een nogal gare CRUD interface hiervoor: alleen maar Create. Read, List doe ik dan via het uitlezen van die well-known. Delete bestaat niet. En Update werkt door een item met een al bestaand id te "createn" - dat overschrijft de oude.

Ik weet nog niet of ik heel blij ben met de keten (spagetti) aan dataclasses. Ik wil het enerzijds netjes afgebakend houden, maar anderzijds niet teveel duplicatie. Ik heb het gevoel dat ik nu iets teveel duplicatie heb. Als voorbeeld: CredentialConfigurationInput representeert de CrentialConfiguration zoals deze aan een cli commando doorgegeven wordt. Maar is vrijwel gelijk aan het interne CredentiaConfiguration en die is weer vrijwel gelijk aan CredentialConfigurationOutput. En die zijn allemaal weer bijna gelijk aan de hele structuur in tests/e2e/support/credential_issuer_metadata.py
Allemaal hebben ze een iets andere functie en eigenlijk niets of weinig met elkaar van doen. De duplicatie is dus eigenlijk meer "accidental duplication". Maar het voegt nogal wat mental-load en complexiteit toe die weinig praktisch nut heeft. Ik ken alleen Python niet goed genoeg om de gebruikelijke structuren en architecturen voor dit soort problemen goed te begrijpen. Dus zomaar alles ineenschuiven klopt ook weer niet.

Voor jou relevant - denk ik

  • structuur van tests
  • structuur van ports/adapters/services/modules - dit is hoe de hele ec-issuer is opgebouwd in essentie.
  • gegoochel met dataclass en msgspec - typed json serde. Ook hoe het overal gedaan wordt in dit project.

Verbeterpunten

  • Zie comment over spagetti- van dataclasses hierboven.
  • msgspec "validatie" is heel goed, de foutmeldingen niet. msgspec met dataclass valideert, runtime, of wat een gebruiker aan json input geeft, wel klopt. Maar komt dan met cryptische fouten als "Expected array | null, got str- at$.credential_signing_alg_values_supported` ", niet heel lekker.
  • ports-adapters werken, maar de naamgeving zit me nog niet lekker. Kan simpeler. Weet alleen nog niet hoe

@berkes berkes force-pushed the feature/credential-configurations-management branch 3 times, most recently from 3dc77d9 to 2dd48e5 Compare June 3, 2026 12:48
It manages these on the oidc4vci service.
Implemented with ssi-agent details.

Adds a command and subcommand structure to allow for more cli actions.
@berkes berkes force-pushed the feature/credential-configurations-management branch from 2dd48e5 to 96d3419 Compare June 3, 2026 14:42
@berkes

berkes commented Jun 3, 2026

Copy link
Copy Markdown
Contributor Author

In deze PR fix ik een error die zorgt dat op main uv niet meer kan draaien. Dat betekent dat daar ook de CI faalt. Alleen dat deel uit deze PR halen, is wat veel werk.

Om die reden merge ik deze PR. Maar feedback, opmerkingen, vragen, verbeterpunten: nog altijd heel graag. Dan implementeer ik die achteraf alsnog.

@berkes berkes merged commit 02fd180 into main Jun 3, 2026
3 checks passed
@berkes berkes deleted the feature/credential-configurations-management branch June 3, 2026 14:58
@berkes berkes restored the feature/credential-configurations-management branch June 3, 2026 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant