Bifold Summit 2023
Summary
The Bifold Summit is a focused effort to provide time for the community to discuss issues and the future of the project. There are currently scheduled two sessions:
Session #1 - 1/10 10:00 AM MT - 12:00 PM MT (12:00 PM ET - 2:00 PM ET)
New Bifold Architecture
Session #2 - 1/11 9:00 AM MT - 11:00 AM MT (11:00 AM ET - 1:00 PM ET)
Bifold AIPv3 wants/needs discussion
Lanugage Discussions, Indy wrappers, Shared Libraries
Updating Bifold to AFJ 0.3.2
Ad Hoc topics
Zoom Link (the same used for the bi-weekly calls): https://zoom.us/my/hyperledger.community?pwd=STZQd0xMZU9xRVVOVnpQM3JNQ2dqZz09
Meeting Policies
Hyperledger is committed to creating a safe and welcoming community for all. For more information please visit the Hyperledger Code of Conduct. |
|---|
Session #1
Attendees:
Name (Organization) <email>
@James Ebert (Indicio) <james.ebert@indicio.tech>
@Akiff Manji (Petri Dish Development) <amanji@petridish.dev>
@Ryan Koch (Indicio) <ryan@indicio.tech>
@Jason Leach (Fullboar Creative / Government of British Columbia) <jason.leach@fullboar.ca>
@Emiliano Suñé (Quartech / Government of British Columbia) <emiliano.sune@quartech.com)
@Simon Henriksen (Hyphen) <simon@hyphenapp.xyz>
@Philip Essy-Ehsing (Hyphen) <philip@hyphenapp.xyz>
Agenda:
New Bifold Architecture
Presentation - James Ebert
Open Discussion
Internationalization
Tablet Support?
Dark Theme vs Light Theme
With the ability to decide
Application Storage / Settings
Can be very opinionated vs providing defaults
Some kind of interface for user settings
Need a good way to group settings into category
Tiered components
Settings List > Category Component > Individual Setting Component
Process for becoming a committer
Outlining the process for the PR reviewing
Checkboxes should be paid attention to
NPM release strategy
Create a Bifold namespace
Start with a core package
@aries-bifold/core
Gradual transformation
Support for .svg's & .png's
We do currently support
This needs to be a development task to document/address
Boilerplate / script
React Native Template
Binaries
Shared components
Using auto-linking
Metro bundler configs
Expo – not opposed, but caution is beneficial
Prebuild command
Animo has done indy building
Native code – possibility?
Should be investigated/discussed
Testability
How do we represent all the different states of a component?
Storybook? - should have some discussion
Can be a standalone
Environment variable
Mocking helps define the externalizations
Keep the barrier to entry low
Need to be testing the visual look of the component
Makes sense for complex components
UI/UX Direction
Need multiple ways to do a wallet – such as credential focused vs chat-based
Need to start
New repo needed - aries-bifold or aries-bifold-framework, aries-bifold-native-libs, aries-bifold-core
James to talk to Sam about attribution recommendation
React Native Bob – can we symlink a submodule? Meaning we have the existing repo aries-mobile-agent-react-native have a aries-bifold submodule
What does testing setup look like?
Roadmap
Storybook demo
Future questions/discussion:
How do you customize a component
Do we want to utilize context providers?
I'm trying to create a wallet from Bifold components, what does that look like?
Notes:
Session #2
Attendees:
Name (Organization) <email>
@James Ebert (Indicio) <james.ebert@indicio.tech>
@Mostafa Youssef (Ontario) <mostafa.youssef@ontario.ca>
Agenda:
Bifold AIPv3 wants/needs discussion
Saturn-V – https://trustoverip.github.io/TIP0028-saturn-v/test_plans/
Other credential formats:
Worth discussion:
JWP credential subtarget
SDWT credential subtarget
Linkable credential
OCA
sub-target or base AIP?
Push for in base requirements
Revocation notification out of base requirements?
Perhaps we create a mobile-specific sub-target
Deep Linking
Mattr – Chapi to redirect
Work item to experiment / RFC creation
We don't want to hardcode / lock to wallets – splintering of wallets
Lanugage Discussions, Indy wrappers, Shared Libraries
Using other languages?
WASM?
Can the new shared components work in a browser context?
What's the driver?
Progressive Web App
How secure can this be? – HSM access, etc
Updating Bifold to AFJ 0.3.2
Almost done - Jason
Upgrading React Native
0.68+
ZMQ
Short-term – Indy-VDR as a Proxy Server
Long-term – Talk directly to the nodes over HTTP/HTTPS
James to provide a branch to Clecio
Shared Components / Indy-VDR / Aries-Askar
Followup Architecture Discussion
Do we want to utilize context providers?
Proposal – Bifold Context Provider
Services configured/passed to the context provider
State management?
Event creation – just need a little bit of structure
Exposed as a service
Pluggable State management – not required
More modular ideally
Remove the state management out of Bifold Core
Reference Implementation needs state management
How do you customize a component
We should crawl > walk > run – start with simpler cases as we learn more and then slowly add more complexity
I'm trying to create a wallet from Bifold components, what does that look like?
Workflows
Pull out the workflow/logic to the app logic
How do we ensure we maintain/update the reference implementation
We need to make a commitment to keeping
Project/goal statement
Navigation stack – Leaving to the end developer
Could abstract/bundle some navigation stacks, such as the onboarding or pin creation
Navigation stacks
Opinionated navigation across multiple components/building blocks
Must NOT be required – needs to be not required
Action Menu
Generally avoid navigation
Ad Hoc topics
Notes: