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

New agents added, data from existing agents transformed to match current schema #51

Closed
wants to merge 64 commits into from
Closed
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
7a67fa8
no data available
samuelmr Apr 9, 2024
3e10a33
no information about a credential wallet at blockpass.org
samuelmr Apr 9, 2024
6653587
added CorpoSign DID
samuelmr Apr 9, 2024
1bf8b23
made openSource optional
samuelmr Apr 9, 2024
67cd217
lots of identity solutions but not credential wallets at https://www.…
samuelmr Apr 9, 2024
86687b2
very vague information on idento.one and orbiter.de
samuelmr Apr 9, 2024
cb0673d
https://www.facebook.com/Euronovate/videos/368212414109009/ has infor…
samuelmr Apr 10, 2024
9c88820
made capability mandatory
samuelmr Apr 10, 2024
2643cbf
modified data to the new schema
samuelmr Apr 11, 2024
ea4b8ff
Added new agents
samuelmr Apr 11, 2024
ce69c50
Updated descriptions
samuelmr Apr 11, 2024
4aaddd5
added website URL
samuelmr Apr 12, 2024
e1d7624
report and skip erroneous files
samuelmr Apr 12, 2024
0e44ca1
added bgcolor for hovered rows, better scaling of wide logos
samuelmr Apr 12, 2024
a075e49
default pageSize 100
samuelmr Apr 12, 2024
d73bc7f
show wallet website, tighter layout
samuelmr Apr 12, 2024
efccf6b
Create jekyll-gh-pages.yml for testing
samuelmr Apr 12, 2024
c8da91e
Merge branch 'main' of github.com:openwallet-foundation/digital-walle…
samuelmr Apr 12, 2024
828d2e4
Delete .github/workflows/jekyll-gh-pages.yml
samuelmr Apr 12, 2024
f860e92
added licenses and status managements
samuelmr Apr 12, 2024
fb6efbb
rearranged fields, added titles
samuelmr Apr 12, 2024
168d231
modified descriptions
samuelmr Apr 12, 2024
7894044
Merge branch 'main' of github.com:FindyFi/credential-agents
samuelmr Apr 12, 2024
8350320
type:mobile -> type:edge
samuelmr Apr 12, 2024
14d357f
added filter examples
samuelmr Apr 12, 2024
3777be7
fixed relative URLs
samuelmr Apr 12, 2024
c20ff83
Merge branch 'main' of github.com:openwallet-foundation/digital-walle…
samuelmr Apr 13, 2024
d712707
portability is boolean
samuelmr Apr 13, 2024
34540d2
modified to comply with schema
samuelmr Apr 16, 2024
1f8bd65
titles to tooltips, transparent padding for logo
samuelmr Apr 16, 2024
20aa8dc
added Hologram
samuelmr Apr 16, 2024
ca8292f
no data available
samuelmr Apr 9, 2024
10259fe
no information about a credential wallet at blockpass.org
samuelmr Apr 9, 2024
738aa04
added CorpoSign DID
samuelmr Apr 9, 2024
359f49c
made openSource optional
samuelmr Apr 9, 2024
99d125f
lots of identity solutions but not credential wallets at https://www.…
samuelmr Apr 9, 2024
329eabf
very vague information on idento.one and orbiter.de
samuelmr Apr 9, 2024
d6214bc
https://www.facebook.com/Euronovate/videos/368212414109009/ has infor…
samuelmr Apr 10, 2024
9deef06
made capability mandatory
samuelmr Apr 10, 2024
d35bb14
modified data to the new schema
samuelmr Apr 11, 2024
21b56ca
Added new agents
samuelmr Apr 11, 2024
b1780f9
Updated descriptions
samuelmr Apr 11, 2024
734db1d
added website URL
samuelmr Apr 12, 2024
99ea503
report and skip erroneous files
samuelmr Apr 12, 2024
bada3a6
added bgcolor for hovered rows, better scaling of wide logos
samuelmr Apr 12, 2024
3155791
default pageSize 100
samuelmr Apr 12, 2024
762d0b2
show wallet website, tighter layout
samuelmr Apr 12, 2024
2f36be0
Create jekyll-gh-pages.yml for testing
samuelmr Apr 12, 2024
e97ed06
Adding Preparese Mobile and Farmworker Wallet OS (#50)
jorgefl0 Apr 12, 2024
81ab8a1
added licenses and status managements
samuelmr Apr 12, 2024
d026c37
rearranged fields, added titles
samuelmr Apr 12, 2024
7dc04f7
modified descriptions
samuelmr Apr 12, 2024
6eae78d
Delete .github/workflows/jekyll-gh-pages.yml
samuelmr Apr 12, 2024
54a1aca
type:mobile -> type:edge
samuelmr Apr 12, 2024
920eca6
added filter examples
samuelmr Apr 12, 2024
5de76b3
fixed relative URLs
samuelmr Apr 12, 2024
120ac10
fix: optimize filter (#55)
cre8 Apr 13, 2024
53e432f
portability is boolean
samuelmr Apr 13, 2024
7d6b7f9
modified to comply with schema
samuelmr Apr 16, 2024
8f4c9d1
titles to tooltips, transparent padding for logo
samuelmr Apr 16, 2024
f9adb3c
added Hologram
samuelmr Apr 16, 2024
79fdc85
added status history
samuelmr Apr 16, 2024
3ccf36e
merged Farmworker WalletOS and Preparese Mobilie changes
samuelmr Apr 16, 2024
179d192
merged previous commits
samuelmr Apr 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion viewer/scripts/merge-wallets.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,14 @@ import { readdirSync, readFileSync, writeFileSync } from 'fs';

// function to merge all the individual wallet files into a single file
const files = readdirSync('../wallets');
const wallets = files.map(file => JSON.parse(readFileSync(`../wallets/${file}`)));
// const wallets = files.map(file => JSON.parse(readFileSync(`../wallets/${file}`)));
const wallets = []
for (const file of files) {
try {
wallets.push(JSON.parse(readFileSync(`../wallets/${file}`)))
}
catch(e) {
console.warn(`Error parsing ${file}: ${e}`)
}
}
writeFileSync('src/assets/wallets.json', JSON.stringify(wallets, null, 2));
9 changes: 9 additions & 0 deletions viewer/src/app/info/info.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,15 @@ <h1 mat-dialog-title>Info</h1>
The goal is to create a set of overviews that can be used to understand the
digital wallet and agent landscape.
</p>
<p>
With filters, you can use the overview to find for example
<a href="./#%7B%22credentialProfiles%22:%5B%22EBSI%22%5D%7D">
agents claiming EBSI compliance</a>,
<a href="./#%7B%22capability%22:%5B%22issuer%22%5D%2C%22issuanceProtocols%22:%5B%22OpenID4VCI%22%5D%7D">
issuer agents supporting <code>OID4VCI</code></a> or
<a href="./#%7B%22capability%22:%5B%22holder%22%5D%2C%22type%22:%5B%22edge%22%5D%2C%22credentialFormats%22:%5B%22LDP-VC%22%5D%7D">
mobile wallets supporting the <code>LDP-VC</code> credential format</a>.
</p>
<p>
If you want to contact the authors or join the upcoming meetings click
<a
Expand Down
4 changes: 2 additions & 2 deletions viewer/src/app/wallets-list/wallets-list.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -196,8 +196,8 @@
</section>
</div>
<mat-paginator
[pageSizeOptions]="[10, 20, 50]"
[pageSize]="50"
[pageSizeOptions]="[10, 20, 50, 100]"
[pageSize]="100"
showFirstLastButtons
aria-label="Select page of periodic elements"
>
Expand Down
16 changes: 13 additions & 3 deletions viewer/src/app/wallets-list/wallets-list.component.scss
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.logo {
height: 40px;
max-height: 40px;
max-width: 120px;
}

.link-list {
Expand All @@ -17,9 +18,18 @@
}

.mat-mdc-cell {
border-right: 1px solid;
border-right-color: var(--mat-table-row-item-outline-color);
font-size: 14px;
min-height: 48px;
text-align: center;
border-right: 1px solid;
border-right-color: var(--mat-table-row-item-outline-color);
}

.mat-mdc-cell.cdk-column-name {
text-align: left;
}

.mat-mdc-row:hover .mat-mdc-cell {
background-color: whitesmoke;
}

59 changes: 28 additions & 31 deletions viewer/src/app/wallets-show/wallets-show.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,15 @@ <h1>{{ wallet.name }}</h1>
>Contact provider</a
>
</div>
<div fxLayout="row" fxLayoutGap="16px">
<p><a
*ngIf="wallet.urlWebsite"
class="website"
target="_blank"
[href]="wallet.urlWebsite"
>{{ wallet.urlWebsite }}</a
></p>
</div>
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="16px">
<a
*ngIf="wallet.urlGooglePlayStore"
Expand Down Expand Up @@ -49,7 +58,23 @@ <h1>{{ wallet.name }}</h1>
<mat-divider></mat-divider>
<div fxLayout="row" fxLayoutAlign="space-between start">
<mat-list>
<mat-list-item>
<mat-list-item title="{{walletsService.getTooltip('type')}}">
Copy link
Contributor

Choose a reason for hiding this comment

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

using materials matTooltip instead of title will give the same CI since the design is applied

Copy link
Contributor

Choose a reason for hiding this comment

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

Change it to [matTooltip]="walletsService.getTooltip('license')" and don't forget to import the MatTooltipModule into the compnent

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done in FindyFi@1f8bd65

<div matListItemTitle><b>Type</b></div>
<span matListItemLine>{{ wallet.type }}</span>
</mat-list-item>
<mat-list-item title="{{walletsService.getTooltip('capability')}}">
<div matListItemTitle><b>Capabilities</b></div>
<span matListItemLine>{{
wallet.capability?.join(', ')
}}</span>
</mat-list-item>
<mat-list-item title="{{walletsService.getTooltip('portability')}}">
<div matListItemTitle><b>Portability</b></div>
<span matListItemLine>{{ wallet.portability ?? 'unknown' }}</span>
</mat-list-item>
</mat-list>
<mat-list>
<mat-list-item title="{{walletsService.getTooltip('openSource')}}">
<div matListItemTitle><b>Open Source</b></div>
<span matListItemLine *ngIf="!wallet.downloadSource"
>{{ wallet.openSource }}
Expand All @@ -58,41 +83,13 @@ <h1>{{ wallet.name }}</h1>
matListItemLine
*ngIf="wallet.downloadSource"
[href]="wallet.downloadSource"
>{{ wallet.openSource }}</a
>{{ wallet.downloadSource }}</a
>
</mat-list-item>
<mat-list-item>
<div matListItemTitle><b>License</b></div>
<div matListItemTitle title="{{walletsService.getTooltip('license')}}"><b>License</b></div>
<span matListItemLine>{{ wallet.license ?? 'unknown' }}</span>
</mat-list-item>
<mat-list-item>
<div matListItemTitle><b>Type</b></div>
<span matListItemLine>{{ wallet.type }}</span>
</mat-list-item>
<mat-list-item>
<div matListItemTitle><b>Portability</b></div>
<span matListItemLine>{{ wallet.portability ?? 'unknown' }}</span>
</mat-list-item>
</mat-list>
<mat-list>
<mat-list-item>
<div matListItemTitle><b>Holder capability</b></div>
<span matListItemLine>{{
wallet.capability?.includes('holder') ?? 'unknown'
}}</span>
</mat-list-item>
<mat-list-item>
<div matListItemTitle><b>Issuer capability</b></div>
<span matListItemLine>{{
wallet.capability?.includes('issuer') ?? 'unknown'
}}</span>
</mat-list-item>
<mat-list-item>
<div matListItemTitle><b>Verifier capability</b></div>
<span matListItemLine>{{
wallet.capability?.includes('verifier') ?? 'unknown'
}}</span>
</mat-list-item>
</mat-list>
</div>
@for (resource of walletsService.resources; track resource) {
Expand Down
13 changes: 13 additions & 0 deletions viewer/src/app/wallets-show/wallets-show.component.scss
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ a {
text-decoration: none;
}

.website {
font-size: small;
}

.company {
font-weight: bold;
}
Expand All @@ -25,4 +29,13 @@ a:hover {
border-radius: 20px;
// make a shadow for the box
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2);
padding: 10px;
}

h2 {
margin: 1em 0 0 0;
}

.mdc-list-item.mdc-list-item--with-one-line {
height: auto !important;
}
58 changes: 29 additions & 29 deletions viewer/src/assets/schema.json
Original file line number Diff line number Diff line change
@@ -1,149 +1,149 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "Wallet",
"title": "Wallet",
"$id": "CredentialAgent",
Copy link
Contributor

Choose a reason for hiding this comment

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

I agree that wallet alone will exclude the agents. But is it clear that CredentialAgent will include also the wallets?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Can we agree that CredentialAgent is better than Wallet and replace that with a better term if we come up with one?

I wouldn't mind if we just had agents with issuer, holder and verifier capabilities, and a special nickname wallet for holder agents.

In some contexts, it may be worthwhile to separate holder agent and wallet from each other. For example the ToIP Glossary specifies: "an agent (specifically a type of software agent) that operates in conjunction with a digital wallet"

IMHO we don't need that complexity in this overview. Or can people choose a separate holder wallet and a holder agent from the overview and make them work in conjunction?

"title": "Credential Agent",
"type": "object",
"properties": {
"$schema": {
"type": "string",
"description": "the schema version of the wallet"
"description": "The schema version of the agent JSON entry"
},
"name": {
"type": "string",
"description": "name of the wallet"
"description": "The name of the agent"
},
"urlWebsite": {
"type": "string",
"description": "url to the website of the wallet with more information",
"description": "An URL to the website of the agent with more information",
"format": "uri"
},
"logo": {
"type": "string",
"description": "url to the logo of the wallet"
"description": "The URL to the logo of the agent"
},
"company": {
"type": "string",
"description": "name of the company. In case it's a community project, the name of the community"
"description": "The name of the company or a community developing the agent"
},
"companyUrl": {
"type": "string",
"description": "url to the company, not the url to the product",
"format": "url"
"description": "The url to the company website (not the product website)",
"format": "uri"
},
"contact": {
"type": "string",
"description": "provide a link to a contact formula or insert an email address for support requests"
"description": "A link to a contact form or an email address for support requests"
},
"openSource": {
"type": "boolean",
"description": "is the wallet open source"
"description": "The agent source code is available under an open-source license"
},
"downloadSource": {
"type": "string",
"description": "if the wallet is open source, provide the url to the source code, like a github link",
"description": "The URL to the source code, for example a github repository",
"format": "uri"
},
"license": {
"type": "string",
"description": "add the license of the wallet. In case you have multiple licenses, add them here."
"description": "The license(s) of the agent source code."
},
"capability": {
"type": "array",
"description": "list of capabilities of the wallet",
"description": "The capabilities supported by the agent",
"items": {
"type": "string",
"enum": ["holder", "issuer", "verifier"]
}
},
"type": {
"type": "string",
"description": "it is a cloud or mobile wallet",
"enum": ["cloud", "mobile"]
"description": "The deployment model of the agent (e.g., cloud service or mobile app)",
"enum": ["cloud", "edge"]
},
"portability": {
"type": "boolean",
"description": "am I able to export my data from the wallet/agent and import them into another device/system"
"description": "Users can export their data from the agent and import them into another device/system"
},
"urlAppStore": {
"type": "string",
"description": "link to the app store from apple",
"description": "Link to the Apple AppStore",
"format": "uri"
},
"urlGooglePlayStore": {
"type": "string",
"description": "link to the play store from google",
"description": "Link to the Google Play store",
"format": "uri"
},
"urlWebApp": {
"type": "string",
"description": "link to the web app in case it's not a mobile wallet",
"description": "Link to the web app - where the agent can be used with a browser",
"format": "uri"
},
"credentialProfiles": {
"type": "array",
"description": "list of supported credential profiles, it has to be a valid credential profile from the Credential Profiles Comparison SIG",
"description": "List of supported credential profiles. They entries must be valid credential profiles defined by the Credential Profiles Comparison SIG.",
"$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/",
"items": {
"$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Credential-Profile"
}
},
"credentialFormats": {
"type": "array",
"description": "list of supported credential formats, it has to be a valid credential format from the Credential Formats Comparison SIG",
"description": "List of supported credential formats. They entries must be valid credential formats defined by the Credential Formats Comparison SIG",
"$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Credential%20Format",
"items": {
"$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Credential-Format"
}
},
"signingAlgorithms": {
"type": "array",
"description": "list of supported signing algorithms, it has to be a valid credential format from the Credential Formats Comparison SIG",
"description": "List of supported signing algorithms. The entries must be valid algorithms defined by the Credential Formats Comparison SIG.",
"$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Signing%20Algorithm",
"items": {
"$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Signing-Algorithm"
}
},
"statusManagements": {
"type": "array",
"description": "list of supported status algorithms, it has to be a valid credential format from the Credential Formats Comparison SIG",
"description": "List of supported status management methods. The entries must be valid status management methods defined by the Credential Formats Comparison SIG",
"$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Status%20Algorithm",
"items": {
"$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Status-Algorithm"
}
},
"keyManagements": {
"type": "array",
"description": "list of supported key managements, it has to be a valid credential format from the Credential Formats Comparison SIG",
"description": "List of supported key management methods. The entries must be valid key management methods defined by the Credential Formats Comparison SIG",
"$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Key%20Management",
"items": {
"$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Key-Management"
}
},
"issuanceProtocols": {
"type": "array",
"description": "list of supported issuance protocols , it has to be a valid credential format from the Credential Formats Comparison SIG",
"description": "List of supported issuance protocols. The entries must be valid issuance protocols defined by the Credential Formats Comparison SIG",
"$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Issuance%20Protocol",
"items": {
"$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Issuance-Protocol"
}
},
"presentationProtocols": {
"type": "array",
"description": "list of supported presentation protocols , it has to be a valid credential format from the Credential Formats Comparison SIG",
"description": "List of supported presentation protocols. The entries must be valid presentation protocols defined by the Credential Formats Comparison SIG",
"$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Presentation%20Protocol",
"items": {
"$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Presentation-Protocol"
}
},
"trustManagements": {
"type": "array",
"description": "list of supported trust managements , it has to be a valid credential format from the Credential Formats Comparison SIG",
"description": "List of supported trust management methods. The entries must be valid trust management methods defined by the Credential Formats Comparison SIG",
"$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Trust%20Management",
"items": {
"$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Trust-Management"
}
}
},
"required": ["name", "urlWebsite", "company", "openSource"],
"required": ["capability", "company", "name", "urlWebsite"],
"additionalProperties": false
}
8 changes: 4 additions & 4 deletions wallets/AceID Wallet.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"blockchainType": "AceBlock blockchain framework",
"blockchainUsed": "Yes",
"capability": ["holder"],
"company": "AceBlock",
"eassi": "No",
"name": "AceID Wallet",
"$schema": "../viewer/src/assets/schema.json",
"openSource": false
"openSource": false,
"type": "cloud",
"urlWebsite": "https://www.aceblock.com/modules/aceid/"
}
15 changes: 15 additions & 0 deletions wallets/Altme.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"capability": ["holder"],
"company": "Talao",
"contact": "contact@altme.io",
"credentialProfiles": ["EBSI"],
"downloadSource": "https://github.com/TalaoDAO/AltMe",
"license": "Apache 2.0",
"logo": "https://unicorn-cdn.b-cdn.net/c5a08f4c-0ad3-425b-add7-4ec916fff504/altme-wallet-logo.png?width=70&height=70",
"name": "Altme",
"openSource": true,
"$schema": "../viewer/src/assets/schema.json",
"type": "edge",
"urlAppStore": "https://apps.apple.com/fr/app/altme/id1633216869",
"urlGooglePlayStore": "https://play.google.com/store/apps/details?id=co.altme.alt.me.altme"
}
Loading