Skip to content

Commit

Permalink
Merge branch 'main' into chore/update-tanglelabs-oid4vc
Browse files Browse the repository at this point in the history
  • Loading branch information
eike-hass committed Aug 2, 2024
2 parents 0a3e35b + b4b02cf commit aa9ca97
Show file tree
Hide file tree
Showing 22 changed files with 303 additions and 342 deletions.
14 changes: 14 additions & 0 deletions shared/proto/identity/utils.proto
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,18 @@ message DataSigningResponse {
// Service that handles signing operations on raw data.
service Signing {
rpc sign(DataSigningRequest) returns (DataSigningResponse);
}

message DidJwkResolutionRequest {
// did:jwk string
string did = 1;
}

message DidJwkResolutionResponse {
// JSON DID Document
string doc = 1;
}

service DidJwk {
rpc resolve(DidJwkResolutionRequest) returns (DidJwkResolutionResponse);
}
16 changes: 16 additions & 0 deletions tooling/API/Identity/GRPC.http
Original file line number Diff line number Diff line change
Expand Up @@ -119,4 +119,20 @@ GRPC /DomainLinkage/validate_did
GRPC /CredentialPresentation/validate
{
"jwt": "{{jwt}}"
}
###
GRPC /CredentialPresentation/validate
{
"jwt": "eyJ0eXAiOiJKV1QiLCJhbGciOiJFZERTQSIsImtpZCI6ImRpZDpqd2s6ZXlKaGJHY2lPaUpGWkVSVFFTSXNJbU55ZGlJNklrVmtNalUxTVRraUxDSnJhV1FpT2lKeWNIcEZNVWhyVW1aaVpYUldaRmQ1WW1wRFRFRkpMVlJxY2pWclRsVmpNRk5GZVdsaWVFRlNUamxySWl3aWEzUjVJam9pVDB0UUlpd2llQ0k2SW5wSGRGTnVWWHBwZFdoWFZWTjJNVGhqUVZWemRrNWlVWGR4WjBsNWQyaE9ZMnBVUW5oblNITnpTVWtpZlEjMCJ9.eyJpc3MiOiJkaWQ6andrOmV5SmhiR2NpT2lKRlpFUlRRU0lzSW1OeWRpSTZJa1ZrTWpVMU1Ua2lMQ0pyYVdRaU9pSnljSHBGTVVoclVtWmlaWFJXWkZkNVltcERURUZKTFZScWNqVnJUbFZqTUZORmVXbGllRUZTVGpscklpd2lhM1I1SWpvaVQwdFFJaXdpZUNJNklucEhkRk51VlhwcGRXaFhWVk4yTVRoalFWVnpkazVpVVhkeFowbDVkMmhPWTJwVVFuaG5TSE56U1VraWZRIiwic3ViIjoiZGlkOmp3azpleUpoYkdjaU9pSkZaRVJUUVNJc0ltTnlkaUk2SWtWa01qVTFNVGtpTENKcmFXUWlPaUp5Y0hwRk1VaHJVbVppWlhSV1pGZDVZbXBEVEVGSkxWUnFjalZyVGxWak1GTkZlV2xpZUVGU1RqbHJJaXdpYTNSNUlqb2lUMHRRSWl3aWVDSTZJbnBIZEZOdVZYcHBkV2hYVlZOMk1UaGpRVlZ6ZGs1aVVYZHhaMGw1ZDJoT1kycFVRbmhuU0hOelNVa2lmUSIsImF1ZCI6ImRpZDppb3RhOnJtczoweGI5N2ViY2FiM2M3MGQ5ZDMwODdhOTZlMDRhYWM0M2M4YTEzOWExODdhMWE3Y2JhYWUxYTE3YmMyZDdlYjA3NjYiLCJleHAiOjE3MjE5MTEwMTEsImlhdCI6MTcyMTkxMDQxMSwidnAiOnsiQGNvbnRleHQiOiJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsInR5cGUiOiJWZXJpZmlhYmxlUHJlc2VudGF0aW9uIiwidmVyaWZpYWJsZUNyZWRlbnRpYWwiOlsiZXlKcmFXUWlPaUprYVdRNmFXOTBZVHB5YlhNNk1IaGtZakpoTW1Jek9UazBZemRoTnpsaU56bGlZV1JpWkRCallqVmtORFZsTjJVNE4yTmlZVEV3WldNMU1qazNNR0U1TXpZMU5tTTJZakEzTURCaU9UazJJMDl6ZDJKSlRsSk5NSEZMUkV4b1JIWXdkSFZHYkV0R2JVaDJVbU5hT0U5cExYQnNOVWR6VGtzMlJUQWlMQ0owZVhBaU9pSktWMVFpTENKaGJHY2lPaUpGWkVSVFFTSjkuZXlKcGMzTWlPaUprYVdRNmFXOTBZVHB5YlhNNk1IaGtZakpoTW1Jek9UazBZemRoTnpsaU56bGlZV1JpWkRCallqVmtORFZsTjJVNE4yTmlZVEV3WldNMU1qazNNR0U1TXpZMU5tTTJZakEzTURCaU9UazJJaXdpYm1KbUlqb3hOekl4T1RBNE5ERTJMQ0p6ZFdJaU9pSmthV1E2YTJWNU9ubzJUV3QwUkVVNFpVVlNhbmhpT0UxdWIzSm1OVU5qV1hKcVNuRk9Va3BxZUZwTlZqZzVXREoyTmtwWldHVk1NU0lzSW5aaklqcDdJa0JqYjI1MFpYaDBJanBiSW1oMGRIQnpPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1ERTRMMk55WldSbGJuUnBZV3h6TDNZeElpd2lhSFIwY0hNNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TVRndlkzSmxaR1Z1ZEdsaGJITXZaWGhoYlhCc1pYTXZkakVpWFN3aWRIbHdaU0k2V3lKV1pYSnBabWxoWW14bFEzSmxaR1Z1ZEdsaGJDSXNJa05wZEdsNlpXNURjbVZrWlc1MGFXRnNJbDBzSW1OeVpXUmxiblJwWVd4VGRXSnFaV04wSWpwN0ltSnBjblJvY0d4aFkyVWlPaUpOZFhOMFpYSnpkR0ZrZENJc0ltTnZkVzUwY25raU9pSkhaWEp0WVc1NUlpd2laR0YwWlNJNklqRTVOell0TVRJdE1UVlVNRFk2TVRrNk5Ua3VOVFV5V2lJc0ltWnBjbk4wVG1GdFpTSTZJa0psYmlJc0lteGhjM1JPWVcxbElqb2lWWFI2WlhJaUxDSnVZWFJwYjI1aGJHbDBlU0k2SW1kbGNtMWhiaUlzSW5Cb2IyNWxJam9pTURBdE1EQXdNQ0o5ZlgwLlpfRnBfMTVlT0R6OXVtWFJkTlNsWVhvTUtpTm1fdjBFWUN3VmZKMG1GckdnT2ZIaWJIV0FrUWUyQnAwdUZ0bDRVNHgwNWYxZkZ4STFFZnI1VWcwUEN3Il0sImhvbGRlciI6ImRpZDprZXk6ejZNa3RERThlRVJqeGI4TW5vcmY1Q2NZcmpKcU5SSmp4Wk1WODlYMnY2SllYZUwxIn0sIm5vbmNlIjoidGVzdCJ9.lQhVLvQ7eeoAHrwQ6MIitU6x4wEv7EqnxI0Jd30xrqZ0wZAQ-JmpZ6fag9g8SKHx3x3RMEKBrgqvpMVhDPcmDQ"
}
###

{{
//pre request script
exports.data = new TextEncoder().encode("test");
}}

GRPC /DidJwk/resolve
{
"did": "did:jwk:eyJhbGciOiJFZERTQSIsImNydiI6IkVkMjU1MTkiLCJraWQiOiJycHpFMUhrUmZiZXRWZFd5YmpDTEFJLVRqcjVrTlVjMFNFeWlieEFSTjlrIiwia3R5IjoiT0tQIiwieCI6InpHdFNuVXppdWhXVVN2MThjQVVzdk5iUXdxZ0l5d2hOY2pUQnhnSHNzSUkifQ"
}
95 changes: 59 additions & 36 deletions web/public/locales/en/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -114,21 +114,21 @@
},
"steps": {
"setup": {
"title": "Identity Creation"
"title": "Identity wallet setup"
},
"government": {
"title": "Government Interaction",
"title": "National Id Agency",
"processes": {
"signIn": "Sign In",
"issueCredential": "Claim Identity Credential"
"signIn": "Log In",
"issueCredential": "Claim national ID"
}
},
"company": {
"title": "Company Registrar Interaction",
"title": "Company registration agency",
"processes": {
"signIn": "Sign In",
"presentCredential": "Share Identity Credential",
"offerCredential": "Verify Identity Credential",
"signIn": "Log In",
"presentCredential": "Present National ID",
"offerCredential": "Enter company details",
"issueCredential": "Claim Company Credential"
}
},
Expand All @@ -139,12 +139,11 @@
"title": ""
},
"done": {
"title": "Ready for Business"
"title": "Ready for Business!"
}
},
"general": {
"Self Sovereign Identity": "Self-Sovereign Identity",
"selfSovereignity": "Self-Sovereignity",
"Demo": "Demo",
"The App": "The App",
"What it is": "Through Self-Sovereign Identity, people, organizations and things are empowered to collect and share their own verified data and digital identity.",
Expand All @@ -155,7 +154,6 @@
"greatSuccess": "Great Success!",
"signedInDID": "You Signed in With DID",
"receivedNewCredentials": "Received New Credentials",
"reusedSelvCredentials": "Re-used Selv Credentials",
"messages": {
"waiting": "Waiting for Selv App...",
"connectionError": "Connection Error. Please Try Again!",
Expand All @@ -178,62 +176,87 @@
"welcomeToThe": "Welcome to the",
"selvDemo": "Selv Demo",
"hereIsTodo": "<0>Here is <1>your to-do list</1> for today:</0>",
"claimIdentity": "Claim Identity",
"setUpCompany": "Set up a Company",
"getBankAccount": "Get a Bank Account",
"getLiabilityInsurance": "Get Liability Insurance"
"createIdentity": "Create your self-sovereign identity",
"claimId": "Claim your national ID",
"registerCompany": "Register Company"
},
"introShowMobile": {
"looksLikeWork": "That Looks Like a Lot of Work...",
"advantage": "<0>But using IOTA Identity and our partner wallets, it will be <1>​quick and easy​.</1></0>",
"noteDesktop": "For the best experience, please use this demo website on a desktop computer."
},
"appDownloadQR": {
"onceDownloaded": "Once you’ve chosen and setup a wallet, click the button below."
},
"greatSuccess": {
"signedInDIDText": "You managed to sign into a website you never signed up for. Account creation has been skipped saving you time and effort. The company house is also not burdened with saving your password.",
"receivedNewCredentialsText": "You became the owner of a company. From this point onwards, you would be able to prove your directorship position online, allowing you to act on behalf of the company. Overtime you can grow your Selv profile by gathering such credentials from trusted third parties.",
"reusedSelvCredentialsText": "By controlling your personal data, you shared verifiable data without having to type it into a form. You can use these same credentials in other processes. Imagine never having to type in your name, address, email etc..."
"signedInDIDText": "You managed to sign into a website you never signed up for. At no point in the process you had to share your email address or a password with an arbitrary website.",
"receivedNewCredentialsText": "You became the owner of a company. From this point onwards, you would be able to prove your directorship position online, allowing you to act on behalf of the company. Overtime you can grow your Digital Identity profile by gathering further credentials from trusted third parties.",
"reusableCredentials": "Reusable Credentials",
"reusableCredentialsText": "By controlling your personal data, you shared verifiable data without having to manually type it into a form. You can reuse the same credentials in other processesand save your precious time for the really important things in life."
},
"thankYou": {
"thanksForTryingSelv": "Thanks for Trying Selv!",
"improvedExperience": "Improved Experience",
"savedTime": "With Selv, powered by IOTA, you managed to set up an entire company, corporate bank account and insurance with very few clicks. Your data was reusable and this saved you x fields of form fields to fill in.",
"sovereignityText": "You have taken full control of your data. You decided who you shared your data with. Did you know that you can share them with others manually via QR as well. Try so in the Selv app!",
"savedTime": "With Selv, powered by IOTA, you managed to set up an entire company, corporate bank account and insurance with just a few clicks. Your credentials are reusable, making them a real time-saver.",
"selfSovereignty": "Self-Sovereignty",
"sovereigntyText": "You have taken full control of your data. You decided who you shared your credentials with and when. You can even share them with others manually via QR-Code.",
"moreTrust": "More Trust",
"trustText": "The data you shared with the Company House and the SNS Bank was verifiable. This allows to verify your data instantly and freely using IOTA as the trust layer.",
"trustText": "The data you shared with the Government and the Company Registrar was verifiable, allowing the instant and free verification your data by using IOTA as the trust layer.",
"returnCompanyHouse": "Return to Company House",
"returnHome": "Return Home"
}
},
"walletSelect": {
"title": "Create your self-sovereign identity",
"subTitle": "Choose the wallet where you will save your identity and credentials",
"onceDownloaded": "Once you’ve chosen and setup a wallet, click the button below."
},
"government": {
"signIn": {
"subtitle": "Scan this QR code with your wallet app to log in to the National ID agency portal"
},
"signInConfirmation": {
"title": "Login successful",
"signInSuccess": "You have successfully logged in to the National ID agency portal without ever creating an account, and using only the identity on your wallet. No more need for endless account and password creation."
},
"receiveCredentials": {
"title": "Claim your government emitted National Id",
"subTitle": "Scan the QR code with your wallet app to receive the credential that represents your National ID"
},
"confirmation": {
"confirmation": "Your Identity Credential Was Sent To Your Wallet",
"title": "🎉",
"success": "Congratulations, You Claimed Your Identity!",
"confirmation": "National ID Claimed Successfully",
"success": "You have successfully claimed your government national ID. Your credential is now securely stored in your wallet app and can be used across various portals.",
"nextStep": "Next, Register your Company"
}
},
"company": {
"signIn": {
"subtitle": "Scan this QR code with your wallet app to log in to the Company Registration Agency portal"
},
"signInConfirmation": {
"title": "Login successful",
"signInSuccess": "You have successfully logged in to the Company registration agency"
},
"provideData": {
"title": "Present National ID to the Company Registration Agency",
"subTitle": "Scan the QR code with your wallet app to authenticate with your National ID in order to register your company"
},
"receiveCredentials": {
"title": "Company Registered Successfully",
"subTitle": "Your private limited company has been successfully registered. Scan the QR code with your wallet app to store your company credential."
},
"confirmation": {
"confirmation": "Your Company Credential Was Sent To Your Wallet",
"title": "🎉",
"success": "Congratulations, You Setup your Company!",
"nextStep": "Next, Claim Open a Bank Account"
"confirmation": "Company Registered Successfully",
"success": "Your private limited company has been successfully registered.",
"nextStep": "Next, Review the results"
},
"incorporatedCompanies": {
"newlyIncorporatedCompanies": "Newly Incorporated Companies"
},
"signInConfirmation": {
"signInSuccess": "You have now signed in <bold>using your DID {{DID}}</bold> without ever creating an account. No more need for endless account and password creation. In addition, you will be able to provide trustable information, which businesses can use without an expensive verification process. Verifying your data is nearly instant and completely free."
},
"companyData": {
"companyName": "Company Name",
"companyAddress": "Company Address",
"companyType": "Company Type",
"companyBusiness": "Nature of Business",
"setUpPrivateCompany": "Set up a Private Limited Company"
"setUpPrivateCompany": "Register Your Private Limited Company",
"subTitle": "Fill in Your Company Details to Complete the Registration"

}
},
Expand Down Expand Up @@ -282,7 +305,7 @@
"waitingForLogin": "Waiting for connection",
"proveIdentity": "Prove control over your Digital Identity",
"receiveCredentials": "Receive Credentials",
"provideCredentials": "Provide Your Digital Identity Credentials",
"provideCredentials": "Prove control over your Digital Identity",
"scanToContinue": "Scan this QR code with <1>your wallet</1> to continue"
},
"companyDetails": {
Expand Down
78 changes: 0 additions & 78 deletions web/src/pages/AppDownloadQR.tsx

This file was deleted.

5 changes: 3 additions & 2 deletions web/src/pages/AppPicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ const AppPicker: React.FC = () => {
<React.Fragment>
<div className='app-picker__scroller'>

<h1 className='title'>{t("actions.downloadApp")}</h1>
<h1 className='title'>{t("pages.walletSelect.title")}</h1>
<h2 className='subTitle'>{t("pages.walletSelect.subTitle")}</h2>
<div className='apps'>
{randomOrderWallets.map(wallet => (
<div className="app">
Expand Down Expand Up @@ -92,7 +93,7 @@ const AppPicker: React.FC = () => {
<img src={avatar2} alt='' className='avatar2' />
</div>
<div className="cta-section" id='app-download'>
<p className='subtitle'>{t("pages.demo.appDownloadQR.onceDownloaded")}</p>
<p className='subtitle'>{t("pages.walletSelect.onceDownloaded")}</p>
<Link to={nextStep} className='cta'>
<Button>
{t("actions.continue")}
Expand Down
1 change: 1 addition & 0 deletions web/src/pages/Company/CompanyData.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ const CompanyData: React.FC = ({ history, match }: any) => {
<Layout>
<div className='company-data-page-wrapper'>
<h2>{t("pages.company.companyData.setUpPrivateCompany")}</h2>
<h3>{t("pages.company.companyData.subTitle")}</h3>
<section>
<h3 className='section-header'>{t("pages.insurance.insuranceData.businessOwner")}</h3>
{validatedDomains && (validatedDomains !== 'in-flight') && (
Expand Down
5 changes: 2 additions & 3 deletions web/src/pages/Company/Confirmation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,12 @@ const Confirmation: React.FC = () => {
<div className='confirmation-page'>
<div className='selv-wrapper'>
<img src={selv} alt='Selv app logo' />
<h4>{t("pages.company.confirmation.title")}</h4>
<h4>{t("pages.company.confirmation.confirmation")}</h4>
</div>
<h2>{t("pages.company.confirmation.confirmation")}</h2>
<p>{t("pages.company.confirmation.success")}</p>
<Link to={nextStep}>
<Button>
{t("pages.general.confirmation.nextStep")}
{t("pages.company.confirmation.nextStep")}
</Button>
</Link>
</div>
Expand Down
Loading

0 comments on commit aa9ca97

Please sign in to comment.