Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add support for IOTA DID Method (#54)
* WIP * WIP * feat: re-introduce generics * WIP * feat: introduce `AppState` * style: rename `ApplicationState` and `AppState` * feat: add `Domain` trait * WIP * WIP * style: remove unused code * fix: fix some `unwrap`s, clean code * refactor: simplify agent_store * feat: add `CommandHandlers` struct * style: fix clippy warnings * refactor: simplify Commands * style: change name * chore: add log messages * fix: only update view when `CredentialOfferCreated` * chore: add comments and logging * refactor: separate queries * fix: several fixes * test: update postman collection * fix: set `oid4vc` dependencies to specific `rev` * chore: set `rust-version` and use `workspace.package` settings * feat: add `GET` method for `credentials` endpoint * test: add `GET` method for `credentials` endpoint in postman collection This includes a test for the `POST` method for the `credentials` endpoint that updates the `CREDENTIAL_LOCATION` environment variable * chore: add `/v1/credentials/{credential_id}` to `openapi.yaml` file * chore: bump `axum` dependency to `0.7` * chore: update `axum` related code to version `0.7` * feat: add `log_error_response` macro for cleaner logging of error responses * chore: update POST request to a valid OBv3 `credentialSubject` * chore: use `TraceLayer` for proper tracing in `agent_api_rest` * `on_request` makes sure that each request is traced * `on_response` makes sure that each response is traced * `on_body_chunk` makes sure that each response body is traced `TraceLayer` only accepts `Request<axum::body::Body` which is not `Serialize`, therefore, we still need to explicitly trace the request body in each route. * fix: remove obsolete `log_error_response` macro The `log_error_response` macro is replaced by the `TraceLayer`.` * refactor: use `if` + `is_err()` rather than `match` for `command_handler` useage * feat: add `NOT_FOUND` response option * fix: set tokio version to `1` * feat: initialize module * WIP * refactor: move `ApplicationState` to `agent_shared` * feat: add `agent_verification` * style: rename `AuthorizationRequestTestFramework` to `ConnectionTestFramework` * feat: add `VerificationState` to `ApplicationState` * chore: add `Cargo.lock` file * feat: add verification endpoints * refactor: remove `ApplicationState` struct and replace it for a tuple * fix: remove `ConnectionNotificationSent` Instead of using the `VerificationServices` for sending connection notifications we will probably need to utilize a `Query` that will function as an outgoing adapter. * feat: add `VerificationState` to `ApplicationState` * feat: add `authorization_request` and `connection` tables to `init.sql` * feat: add `EventPublisherHttp` * feat: add `OutboundAdapter` trait * test: add default parameters to tests in `agent_api_rest` * feat: make `EventPublisherHttp` support all different aggregates * test: adjust test for `EventPublisherHttp` * feat: add `EventPublisherHttp` to `agent_application` * test: fix `Mutex` * chore: remove unused environment variables from `.env.example` * fix: rename aggregate event publishers * test: improve tests for Verification in `agent_api_rest` * fix: rename siopv2 endpoints, add `path` * feat: move `client_metadata` to `VerificationServices` * docs: add `README.md` file for `agent_event_publisher`, remove `config.yaml` * fix: default to empty `EventPublisherHttp` when `config.yml` does not exist * fix: use `client_id` for the `connection_id` * fix: return `text/plain` instead of `application/json` * fix: add `InvalidSIOPv2AuthorizationResponse` error * docs: add comments to Verification endpoints * fix: fix the path to the `config.yml` file * test: fix test * feat: enable `agent_event_publisher_http` in docker environment * docs: add documentation for `SecretManager` and `EventPublisherHttp` * style: use `pub type`s for adapters * feat: change content-type to application/json * style: replace closure for enum variant * fix: change `authorization_requests` endpoints response content-type to `text/plain` * docs: add verification related endpoints to `openapi.yml` * style: rename `OutboundAdapter` to `EventPublisher` * docs: specify that the default Stronghold option is temporary * refactor: move `secret_manager` function to `agent_secret_manager` * feat: add `get_authorization_requests` endpoint * docs: fix example link * fix: fix `SecretManager` import * chore: update `did-manager` and `oid4vc` dependencies * fix: reset `format-lint-test` workflow * test: add verification endpoints to Postman collection * WIP * feat: add `default_did_method` * style: remove unnecessary `let` binding * feat: support just-in-time external credential signing * style: fix clippy * WIP * feat: add `did:iota` * WIP * feat: implement `Subject` responsible for singing and verifying data * feat: add `oid4vp` support * docs: update `/v1/authorization_request` in `openapi` file * chore: update postman collection * fix: set `presentation_definition` to contain `VerifiableCredential` * fix: use slice directly * fix: use `did:iota:rms` * style: several cleanups * docs: add documentation for using the IOTA DID Method * feat: update docker-compose * chore: update `oid4vc` dependencies * fix: remove `test_definition.json` * style: rename endpoint deserialization helpers * style: rename endpoint deserialization helpers * docs: add comment for `GenericAuthorizationResponse` * docs: improve the IOTA DID Method related documentation * style: add newline --------- Co-authored-by: Daniel Mader <[email protected]>
- Loading branch information