Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for W3C-standard Decentralized Identifiers #2

Open
jorritspee opened this issue Dec 13, 2022 · 1 comment
Open

Support for W3C-standard Decentralized Identifiers #2

jorritspee opened this issue Dec 13, 2022 · 1 comment
Labels
question Further information is requested

Comments

@jorritspee
Copy link

Hi,

To what extend is support for W3C-standard Decentralized Identifiers (https://www.w3.org/TR/did-core/) part of the nl-wallet-demo-app?

Kind regards,
Jorrit Spee

@HaitskevdLinde
Copy link
Collaborator

Hello Jorrit, just wanted to let you know that we have seen your questions and will provide an answer. Unfortunately we have a few people with the flu on our end, so it may take us a little longer than we normally strive for. Thx. Haitske

@HaitskevdLinde HaitskevdLinde added the question Further information is requested label Dec 15, 2022
@HaitskevdLinde HaitskevdLinde self-assigned this Dec 15, 2022
confiks pushed a commit that referenced this issue Jun 6, 2023
* Improve Landscape Support #3

Add Landscape support (make content scrollable)
on the DigidPinPage.

* Improve Landscape Support #2

Add Landscape support (make content scrollable)
on the WalletPersonalizeDigidErrorPage.

* Improve Landscape Support

Add Landscape support (make content scrollable)
on the WalletPersonalizeIntroPage.
confiks pushed a commit that referenced this issue Jul 6, 2023
* Propagate process_uri Errors

Instead of having a dedicated 'unknown'
enum type when a uri can't be processed
by the rust_core, we now simply return
an Error which neatly ends up in the
stream.

* Implement Feedback

Implement more PR Feedback in the
wallet_app codebase.

* Remove stale generated files

* Implement Rust MR Feedback

* Update Mock Names

Make it consistent with the previous
repo rename.

* Implement MR Feedback

* Refactor DigiD to Digid

* Improve DeeplinkService & Test

Make methods async so they can be awaited
and thereby properly tested.

* Start testing DeeplinkService

* Introduce Mock Factory

Easily resolve mocks using Mocks.create()

* Clean up core_wallet_repository_test

* Analysis fix

* Mock with Mockito and UseCase Tests

- Centralize mocks used in tests in the
wallet_mocks.dart file, and built mocks
using Mockito (vs. manual creations).
- Add tests for the auth usecases

* Improve CoreWalletRepository test #2

* Improve CoreWalletRepository test

* Extract TypedWalletCore Interface

Extract the interface to make classes that
rely on it more testable.

* Test AppLifecycleService

* Run Cargo Fmt

* Introduce DigiDAuthenticationRepository Test

* Reset wallet_constant

* PR Tweaks

- Revert tweak test account_server_url and pubkey
- Revert fake_paging temp fix
- Initialize TypedWalletCore at provider

* Move UriFlowEventExtension

Ideally this is generated when the serde generator
is ran, but I can't seem to get that to work, so making
the extension part of the wallet_app codebase.

* Migrate to Bincode

Use bincode (de)serialize to transfer
uri flow events from rust to flutter.

* Add Docs & Usecases

- Add some documentation to the deeplink_service.dart
- Avoid referencing Repositories directly, instead
route the calls through dedicated Usecases.

* Improve Uri Process Stream

Make the stream logic a bit more readable.

* Delay Uri Processing

Delay the Uri processing until the app
is in the resumed state. This makes sure
that the Uri is not processed too soon in
some cases, as not adding this check could
trigger the situation where:
- The app is in the background
- The lock timer is expired, meaning the
app will now be locked
- A deeplink triggers the app to open
- The deeplink is instantly processed
because the `locked` boolean is flipped
on app open, and not while it's in the
background (UNWANTED!)
- By debouncing on the applifecyclestate
first, this situation is avoided, as it
makes sure the locked flag is always
in the correct state before using it
to debounce the uri processing.

* Delay ProcessUri Calls

Delay processing any deeplink Uris
until the app is unlocked, this makes
sure don't process any uri's before
we can actually handle the result.

Might need an extension at some point
to allow deeplinks that we do want to
process before unlucking the app, but
so far I can't think of any relevant
usecase for that so sticking to this
(imo) simple and clean solution.

* Clean up Duplicate Enum

The AuthStatus and AuthenticationStatus
enums really represented the same thing,
so opted to remove one for now.

* Add localization

Localize hardcoded strings in the
personalization flow.

* Consistent DigiD naming

Make sure we consistently use
'DigiD' with a capital trailing
D everywhere (in stead of 'Digid').

* Update GetDigidAuthUrlUseCaseImpl

Make it use the AuthRepo in favor
of calling the core directly.

* Use register API

- Use the real register api (requires
a running wallet_provider)
- Unlock the wallet with any pin
(useful while testing, added a TODO)
- Do not automatically revert to idle
in DigiDstate so that the event
can't be missed while the user is
entering her pin

* Extract authStatusUpdate handler

* Improve AuthState Update Propagation

Make sure the UI updates and is in the
correct state when the app is cold
started with a authentication deeplink.

* Basic 'process_uri' flow setup

Setup the wallet_app so that it passes
on the uri to the wallet_core which
now returns a stream. This stream is
observed and relevant events are passed
on to the related repository so that the
wallet_app can continue the relevant flow.

* Introduce CallbackStream

Setup a generic, static stream in
the wallet_core that can be used
to communicate back to flutter at
any given time. Currently used to
notify that a placeholder deeplink
has been processed and the digid
login flow can continue.

* Update Android launchMode

Update the launchMode so that (e.g.
when a deeplink is clicked) the existing
activity is always brought to the front
instead of creating a new one. This is
desired because otherwise a new Flutter engine
might be created, which also triggers a
duplicate initialization of the WalletCore,
which in term causes the app to crash.

* Pass on Deeplink Uri

Delegate deeplink uris that can't be
handled by the wallet_app directly
to the wallet_core so they can be
handled there.

* Introduce GetDigiDAuthUrl

Get the digid auth url through the
wallet_core and pass it on to the
WalletPersonalizeScreen so it can be
launched.
confiks pushed a commit that referenced this issue Jul 15, 2024
* Remove duplicate tests #2

Caused my incorrect 'auto resolve' of merge conflicts

* Remove duplicate tests

Caused my incorrect 'auto resolve' of merge conflicts

* Remove unused lokalise key

* Navigate to Splash from Device Unsupported page

* Rename MissingKeyHardware->HardwareKeyUnsupported

* Add unused .arb keys check to CI

Check if the arb files contain unused keys, and show a warning in
the pipeline if they do.

* Fetch latest .arbs

* Add translations_cleaner as dev dependency

And run:
- dart run translations_cleaner clean-translations

* Update errorScreenDeviceIncompatibleDescription

* Introduce buildShowDetailsButton

Add a buildShowDetailsButton() method to the ErrorButtonBuilder
class so that we have a single place to construct the show details
button.

* Lokalise DeviceIncompatible Errors

* Render device not supported error

* Add core support for MissingKeyHardware error

* Fix linebreak issue

* Add 'Show Details' tests

Make sure the correct 'show details' cta is shown
on the errorscreen and errorpage.

* Make sure the correct info button is shown

* Verify server error for DisclosureScreen

* Verify server error for WalletPersonalizeScreen

* Verify server error for SetupSecurityScreen

* Change Default ErrorCtaStyle to retry

Since we mostly want to show the try again cta, default
the ErrorCtaStyle to retry so that is shown by default.

* Update ServerError UI

- Update the UI to show the new headline/description.
- Show the retry cta when coming from the pin_screen.
- Validate correct server error state is shown from the
pin_screen when receiving the network error with
hasInternet=true.

* Simplify ErrorPage api

Since there is not a lot customization needed (yet) for
these pages, prefer keeping the api as simple as possible
by deciding what button and text to show based on the
cta style inside the ErrorPage widget.

* Update ErrorPage.network api

Update the api to work with the buttons directly instead of
a list of parameters.

* Update ErrorPage.generic api

- Update the api to work with the buttons directly instead of
a list of parameters
- Verify that DisclosureScreen shows the correct generic error

* Validate generic error for WalletPersonalizeGenericError

* Validate generic error for SetupSecurityScreen

* Validate generic error for PinScreen

* Fix typo in test name

* Add missing SafeAreas

* Fix error_screen and confirm_buttons tests

* Verify internet error for DisclosureScreen

* Verify internet error for WalletPersonalizeScreen

* Verify internet error for SetupSecurityScreen

* Clean up pin_screen_test

* Verify PinValidateNetworkError

Verify that the PinValidateNetworkError with hasInternet=false
on the PinScreen results in the correct error being shown.

Thies is, no internet title and a try again button.

* Add initial pin_screen_test

* Tune ErrorPage layout

Update icon and spacings.

* Update ErrorPage layout

Match the layout (and api) of the refreshed ErrorScreen.

* Add ScrollBar to ErrorScreen

* Update actions on ErrorScreen

Dynamically show the close button based on the
ErrorCtaStyle.

* Update ErrorScreen showGeneric

* Update version widgets styling

Change to dedicated prefix and value text styles
for easier and more predictive customization.

* Update version widgets

Separate the prefix and value in lokalise so
we can easily use custom weight for both texts.

* Fix error_screen_test.dart

* Make no internet description dynamic

* Pass buttons to ErrorScreen

Instead of passing individual parameters update the
api to accept the buttons directly, also tweak the
showNoInternet() accordingly.

* Remove title from ErrorScreen

* Update layout of ErrorScreen

Add collapse-able layout and generic show details
cta for the internet error.

* Allow flipping of vertical_confirm_buttons

* Tweak ConfirmButtons

Vertical: Make sure init/dispose is called at the correct time

Horizontal: Make sure init/dispose is called a the correct time
and tweak the alignment so that the secondary button is offscreen
when its hidden and the buttons are bottom aligned when more space
is available.

* Tweak OtherStylesTab

Avoid duplicate ids and thereby eliminate the heroes
duplicate key error printed to the log.

* Update SliverWalletAppBar leading logic

Update it so that the automaticallyImplyLeading logic matches
that of the WalletAppBar.

* Add ErrorScreens to OtherStylesTab

* Clean up HelpSheet

For more consistency:
- Use ListButton
- Use BottomCloseButton

* Introduce ErrorDetailsSheet

* Update HelpSheet to include config version
sietseringers pushed a commit that referenced this issue Aug 15, 2024
* PVW-3130: Increase dart unit test coverage #2

* Clean unused translations

* Add tests for CheckPermissionOnResume

* Update DisclosureScreen tests

Also tweak the walletAppWrapper to take generic
providers so provided dependencies can be scopes
above the navigator (i.e. so that they persist
through navigation to other routes).

* Update HelpSheet test

* Improve withDependency

Instead of defining an explicit builder, use the built in
builder parameter of the Provider widget.

* Add basic SignBloc test

* Update DisclosureScreenArgument test

* Fix DigidHelpScreen test

* Add Environment test

* Update DigidHelpScreen test

* Update DataIncorrectScreen test

* Fix NumberedList issue

On large font scaling where the user would want to scroll
content with a numberedlist, she might not be able to scroll
as the scroll gesture is caught by the numberedlist instead
of its container. Now setting NeverScrollablePhysics to avoid
this behaviour.

* Add DashboardScreenArgument test

* Improve WalletCardItem tests

* Update ThemeScreen tests

* Update PlaceholderScreen tests

* Add ErrorDetailsSheet test

* Fix lint errors

* Update CardDetailScreen tests

* Add LockStateMixin tests

Actually discovered a bug in the stream (wrong
distinct operator), fixed together with these
tests.

* Add CheckAttributesBloc tests

* Add ChangeLanguageBloc tests

* Improve CardHistoryScreen tests

* Add CardHistoryBloc tests

* Improve CardDetailScreen tests

* Add CardDetailBloc tests

* Improve CardDataScreen test

* Add test for CardDataIncorrectScreen

* Improve CardDataScreenArgument test

* Improve ObserveWalletCardDetailUseCaseImpl test

* Improve coverage of PidIssuanceStatus

* Verify Document equals implementation

* Remove toString from AppImageData

No longer actively used and the props will also
supply a sane toString() implementation.

* Validate WalletEvent equals

* Validate ContinueIssuanceResult getters

* Validate StartIssuanceResult getters

* Add CardDataBloc tests
sietseringers pushed a commit that referenced this issue Aug 15, 2024
* Add missing consts

* Update WalletPersonalizeBloc tests

* Update WalletPersonalizeBloc tests

* Update WalletPersonalizeScreen tests

* Add SplashBloc test

* Improve SignScreen tests

* Add QrNoPermission test

* Add QrBloc tests

* Introduce CheckHasPermissionUseCase

Rewrite the QrBloc so that it checks the current
permission status through an exernal usecase, so that
we can mock the result when testing the behaviour of
the QrBloc.

* Add LoginDetailScreenArgument test

* Add ImageMapper tests

* Update IssuanceScreen tests

Validate that page corresponding to state is rendered.

* Add MenuBloc test

* Add MenuScreen test

* Add IssuanceBloc tests

Add basic tests for the issuance bloc to validate the
happy path.

* Add test for HistoryOverviewLoadFailure state

* Ignore mock_digid files in coverage report

* Update IntroductionScreen tests

* Update IntroductionPrivacyScreen tests

* Update IntroductionConditionsScreen tests

* Add InfoScreen test

* Add test for launch_util

* Update wallet_mocks

Make sure the service locator contains all the generated nice
mocks, so they can all be fetched through Mocks.create().

* PVW-3130: Increase dart unit test coverage #2

* Clean unused translations

* Add tests for CheckPermissionOnResume

* Update DisclosureScreen tests

Also tweak the walletAppWrapper to take generic
providers so provided dependencies can be scopes
above the navigator (i.e. so that they persist
through navigation to other routes).

* Update HelpSheet test

* Improve withDependency

Instead of defining an explicit builder, use the built in
builder parameter of the Provider widget.

* Add basic SignBloc test

* Update DisclosureScreenArgument test

* Fix DigidHelpScreen test

* Add Environment test

* Update DigidHelpScreen test

* Update DataIncorrectScreen test

* Fix NumberedList issue

On large font scaling where the user would want to scroll
content with a numberedlist, she might not be able to scroll
as the scroll gesture is caught by the numberedlist instead
of its container. Now setting NeverScrollablePhysics to avoid
this behaviour.

* Add DashboardScreenArgument test

* Improve WalletCardItem tests

* Update ThemeScreen tests

* Update PlaceholderScreen tests

* Add ErrorDetailsSheet test

* Add HistoryOverviewBloc tests

* Update HistoryDetailScreenArgument test

* Update HistoryDetailScreen tests

* Add HistoryDetailBloc tests

* Add test for CardAttributeRow

* Clean unused translations

* Add tests for CheckPermissionOnResume

* Update DisclosureScreen tests

Also tweak the walletAppWrapper to take generic
providers so provided dependencies can be scopes
above the navigator (i.e. so that they persist
through navigation to other routes).

* Update HelpSheet test

* Improve withDependency

Instead of defining an explicit builder, use the built in
builder parameter of the Provider widget.

* Add basic SignBloc test

* Update DisclosureScreenArgument test

* Fix DigidHelpScreen test

* Add Environment test

* Update DigidHelpScreen test

* Update DataIncorrectScreen test

* Fix NumberedList issue

On large font scaling where the user would want to scroll
content with a numberedlist, she might not be able to scroll
as the scroll gesture is caught by the numberedlist instead
of its container. Now setting NeverScrollablePhysics to avoid
this behaviour.

* Add DashboardScreenArgument test

* Improve WalletCardItem tests

* Update ThemeScreen tests

* Update PlaceholderScreen tests

* Add ErrorDetailsSheet test

* Fix lint errors

* Update CardDetailScreen tests

* Add LockStateMixin tests

Actually discovered a bug in the stream (wrong
distinct operator), fixed together with these
tests.

* Add CheckAttributesBloc tests

* Add ChangeLanguageBloc tests

* Improve CardHistoryScreen tests

* Add CardHistoryBloc tests

* Improve CardDetailScreen tests

* Add CardDetailBloc tests

* Improve CardDataScreen test

* Add test for CardDataIncorrectScreen

* Improve CardDataScreenArgument test

* Improve ObserveWalletCardDetailUseCaseImpl test

* Improve coverage of PidIssuanceStatus

* Verify Document equals implementation

* Remove toString from AppImageData

No longer actively used and the props will also
supply a sane toString() implementation.

* Validate WalletEvent equals

* Validate ContinueIssuanceResult getters

* Validate StartIssuanceResult getters

* Add CardDataBloc tests
rubin55 pushed a commit that referenced this issue Sep 2, 2024
* chore: Add version tag for MacOS runner image

* Update dependencies #2

Update dependencies with Flutter 3.24.0 enabled.

* Update dependencies

Bumped versions of some dependencies so that the
bridge generation code works properly again.

* Migrate fvm_config

Fvm_config.json has been deprecated in favor of a .fvmrc file,
update things accordingly.

* Fix failing tests

* Update flutter images

* Update fvm config

* Resolve Flutter 3.24.0 deprecation
rubin55 pushed a commit that referenced this issue Sep 2, 2024
* Avoid async gaps

* Disable ChangePin in non-mock

Disable navigation to the ChangePinScreen in non-mock
builds of the app. As the wallet_core will implement the
change pin behaviour later.

* Fix lint/translation issues

* Add ChangePin landscape test

Add a landscape test for the changepin screen so that the landscape
code for the changepinpage is also being hit.

* Fix SetupSecurity Test issue

The previous state was missing the 'error' field in the equals check,
that issue was fixed, causing this test to start failing because a
different error was provided. Fixed by providing the same error in
the expected result.

* Add additional golden tests

Verify all ChangePin states through golden image
tests.

* Add ChangePinScreen widget tests

* Update initial goldens

- Rename files
- Add dark mode initial golden
- Verify title of initial page in widget test

* Add initial golden test

* Verify back and backspace behaviour

* Add happy flow and error bloc tests

* Update ChangePinBloc (Tests)

- Add some documentation and extract methods in the ChangePinBloc.
- Add some bloc tests and utility functions for the upcoming test.

* Lokalise ChangePinScreen

* Extract announceEnteredDigits

Have one common place where we run the pin entry announcements
to avoid duplicating the announcement code.

* Extract leading widget

* Update Lokalise Keys #2

Update the pinValidationErrorDialog lokalise keys so they match
their new location (dialog vs setup security page).

* Update Lokalise Keys

Update the pinConfirmationErrorDialog lokalise keys so they match
their new location (dialog vs setup security page).

* Extract pin dialogs

Extract the validation and confirm error dialogs
so that they can be re-used in the change pin flow.

* Implement fallback for error states

* Update UI for loading/success pages

* Make back button conditional

* Initial mock happy flow

Implement required steps to change the pin for in a mock
build of the app.

* Setup error handling skeleton

* Handle select/confirm error states

* Render repeat pin code UI

* Manage didGoBack

Add and manage the didGoBack flag to show the
correct back animation when the user navigates
back during the change pin flow.

* Introduce FakePagingAnimatedSwitcher

* Configure basics of ChangePinBloc

* Add ChangePinStates

Add the required ChangePinStates to manage the UI

* Reset currentPin when closing PinBloc

Clean up the _currentPin variable when closing the
pin bloc to avoid it lingering in memory longer than
needed.

* Implement initial pin check

* Setup current pin check

Configure the basics to perform the current pin check
in the change pin flow.

* Update debug statement in wallet_core api

* Add ChangePin UI skeleton

* Implement new APIs in core_mock

Implement the change_pin and check_pin apis in the core_mock
implementation so that we can build the change pin UI in the
app mock environment.

* Update wallet_core apis

Setup placeholders for the change_in and the check_pin apis.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants