콘텐츠로 이동

Initial Agency

Initial Agency는 Aries Protocol 기반의 Mediator 기능을 제공한다.

Mobile App 개발사는 아래 Protocol에 맞게 개발하면 사용할 수 있다.
Initial에서 제공하는 Mobile SDKLibVcx 를 사용한다면 100% 호환 가능하다.

Initial Client2Agency Protocol

Initial agency protocol의 message type은 아래와 같이 몇개의 그룹으로 정의 한다.

  • Onboarding (Owner's Agent Provisioning and Connection)
  • Downloading/Updating messages owned by cloud agent (Owner's Message 송/수신)
  • Downloading messages of cloud agent's particular connection (연결 요청 Message 수신)
  • Internal agency forwarding

Messages examples

Agent Onboarding(Provisioning)

  • Agency에 Peer의 새로운 Cloud Agent를 생성.
  • 사용자(DID)마다 한개의 Cloud Agent를 생성함.
    AgencyComm outbound: {"@type":"did:sov:123456789abcdefghi1234;spec/onboarding/1.0/CONNECT","fromDID":"LC9mkrzZfDXb3UwjnBnm89","fromDIDVerKey":"BThuVSUpiDnL73c4SaUopzXsPE7fN5iwzjQahH5ov4Ag"}
    AgencyComm Inbound agency_v2: {"@type":"did:sov:123456789abcdefghi1234;spec/onboarding/1.0/CONNECTED","withPairwiseDID":"XSasL1cESeSJ2v9wMYeXBf","withPairwiseDIDVerKey":"HbJb8uKp4mtjhnNknP66GgmUMYta6XArNaA4WJDEyyv9"}
    
    AgencyComm outbound: {"@type":"did:sov:123456789abcdefghi1234;spec/onboarding/1.0/SIGNUP"}
    AgencyComm Inbound agency_v2: {"@type":"did:sov:123456789abcdefghi1234;spec/onboarding/1.0/SIGNED_UP"}
    
    AgencyComm outbound: {"@type":"did:sov:123456789abcdefghi1234;spec/onboarding/1.0/CREATE_AGENT"}
    AgencyComm Inbound agency_v2: {"@type":"did:sov:123456789abcdefghi1234;spec/onboarding/1.0/AGENT_CREATED","withPairwiseDID":"DnEpUQJLupa5rKPkrKUpFd","withPairwiseDIDVerKey":"7y118tRW2EMJn18qs9MY5NJWYW2PLwV5QpaLyfoLHtgF"}
    

Pairwise connection을 Agent에 생성하기

  • Initial은 수많은 기관/사용자들과 연결을 지원한다. 이러한 연결마다 Agency는 Message를 처리하기 위한 "Connection Agent"를 생성한다.
    AgencyComm Outbound: {"@type":"did:sov:123456789abcdefghi1234;spec/pairwise/1.0/CREATE_KEY","forDID":"6FRuB95abcmzz1nURoHyWE","forDIDVerKey":"3rvcQRYr1PWwVyTskZg2RQiWeDitKWjiK8bkGHNZoWh8"}
    AgencyComm Inbound V2: {"@type":"did:sov:123456789abcdefghi1234;spec/pairwise/1.0/KEY_CREATED","withPairwiseDID":"6s2aY8eCjgFHzWJgFSe8Si","withPairwiseDIDVerKey":"4CKvy3vU4jPtWGDeBCx5tE1Rwb8zYXJQWBBEUHEzxEg6"}
    

Get messages

  • Initial Client는 Connection Agent로 부터 Message를 download 받을 수 있습니다.
    AgencyComm Outbound (for agent T2uoL8oavjWYVqWMTfXfVc): [{"@type":"did:sov:123456789abcdefghi1234;spec/pairwise/1.0/GET_MSGS","statusCodes":["MS-103"]}]
    AgencyComm Inbound V2: {"@type":"did:sov:123456789abcdefghi1234;spec/pairwise/1.0/MSGS","msgs":[{"payload":{"ciphertext":"AQSZ1QWvVZibDAp5uJyeamSn-Jj_yDekElpXIgSDnx3xOVQMjNGrPtPt07sH0IX3vK532hNpXGLtmmUm5_3ScXwSKg-DqghbYvbdOF_-_hWz6nhn3wDp3kx-50b8Mcs_6ih6jDMTLG01u3J3B5usbiVljNZzhelgDnpHXt2Sknof_0t0i8LgTvnKtfQxAl2DjLfUpD2K50MnRyN1_rZnUB8AyRVF-FXZUkTsPpO8Y3WWVRU_ckpVwhiIQf9h4Z8zORsYJQ-mVWmqqkcOGFt3un39Rw_wt80ULsbDMzEqUJ3Y255Gw6ZB576ZJK3vaxCuGt6aFPDx9dv_vWgLRLZq0W5mTe2v2hPeR9FMSpzV4OcGTplapLoc307Jzlz2bufEEeuvtxAJFF8ymmA6nGWKtR85G6rWKHFT4dh68nXRc5hZcd0_EpYRpd1LQvqqXhzZRWhTRVQ0hjkWlPw4outChR75N1COgAr0-2Ymwaqpg5UtN57-X0y6Ab9Z3-8r0pBCCzkQ1mWJ2vh_6n143ISIhyitKdWp3xLDJy27EOq2RK-zKby-HOg1woA4FmDuAHWo6VOsfrlb7qYKy__Wms8IT6INIehU6UKGpixIoXBOFp2Ue7--Yv76dwgDmcA6A8dUyz_T3YHhwR7-gquvEEw1w21h75vLpEUAWp3M9PIilOF4y8xtqP_1xuVohASHREwCRYkehiX0aqYLYJZxkHRJihjeW7eLzNu5S6Aa08L6lwj6naqKZi5ybsWJEqPPivqo2hU9b3rePKhLgdGobQxBS_RJ9CQP3Y1EbSmCyjQ1tYlmpKhn6tvxC6kzzTZ_zOVTUwxzzWPDU2ugDQ_1uKUSDBfH1sMX3WOzT4MkkpGbyUt1lUqaKGDoT72C_mNif75JloQnG5zUABeZZs-Ljbk_w15ZiC-TJrcNNNBsYTHPdpzpJwaI6kmmUoM0T_hg7volOcznLsBNs263179fW9MaJHfeJqbot8ksS0WpHt3JvtAYhz4e-7nxC9MVxeI7WvB3EBwqS3cm_GQ9VAX_Yz3LGc7pGHib10IeLERHD3m3gNFKAwPlC0HwRnpQ7AL4lOjojNMrKUrEeen8RJzv1HNhOHtMSEh-zPjExttGAedcUD8O8hbju3jKsqhF9Hamw5EZES8CD_jYmW_XKzMyuZveDyvXMSlwH642RMfmm2PrFAox8DmsTq4yb8YM2SkHLSI1w_EWir9LbRlNS8wAI7P5wqMgZIBLegVgUZzlob3HqXrSDnQIF2xl64884HHywiHBFI_y6Ob5VRCvAbYfV_QwOTfNssvt2dxSVvxui8BfCotJUzEaCiMcbf97S-OI-bwBdGnZ4NlmCeX9PWSkRoDBRsmjWgnA9nLTz4RqXMC5Uc-1RkdNOBd11dp6sr-n8ACcuf8xDI9aCNZyO1cliAkmxirkoZmQ--ZZcSdre6A_E7JXtaNLiR0bzZmyHwqZL6VsCAIae-LmdzGaWe-3TGZVxe7z1O5bw3L0bwCiaCE3I82fLxOv8uVtd6eGqFQCs7KCb1zb8_1qm1F9WVHizB3YGr4899J6UJAMopcwDgunn8P-nJ4qK3tsE4DMJ4BrYxJf-IST2DbtKU50ls6Z2wZ64tP8FA2zmMOU9eJP8ZCtAsCTc6Pi1s0NJhEoJkbYsZvECAky9hNoR0Zaw7njl-qYHCz1tADxC17mfgm0f6lg1P44s6IqAxPJgwSkGJ-izw6H3c95i9Eh65WNGSJGQAHYD8YmfFUkwGtiV2fLye823zS8c-3j2jmbBgaUBa40X5FQSA8D-vg1i8g8gjivjat4zVVPd-l0rAoN5ztIfsChmgugzmyEqAHnVmi1_uh04Icvt1mq2_jIroKmn3VHyL1AaIOb888UZdo=","iv":"yvhEfEaR-Ttc3Z7c","protected":"eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiJId2dMeUs1UzlTdElaLUtENzA2NW92Q3Vad0EtZmx3NXdMazduNXo2UjlDR2JmbzA2QnE1Wk9zVnU3LTVobkN5IiwiaGVhZGVyIjp7ImtpZCI6IkI5RmY4WTRQcTFTZkRiMVJTdnNBMVJEM2I3Vjg5ZUc5R3g5QUFycHE5eWFyIiwiaXYiOiJLOEJPYVJVaGxUTTk0Y2tkQ2RMeHNyTkh2TTlWNnpKNSIsInNlbmRlciI6IlQ1ZkFQWnRrYzJ3ZWo2dkk5ejJuU2dUM3pXOFRpVDJiMnNEQk4wMHZaakhYXzJ5T2FucVZlVkdxOXB0Z2NhMEZKSzBrak90bW1hVDhKRlpubnpaa0VfNXd3bnZjTVh6VGVFaDJHUzZhZzNJekJ6SDcxU1Q2Y3Q2QTFPVT0ifX1dfQ==","tag":"jsRfDwWu-7fQ8FVbhmT7og=="},"refMsgId":null,"senderDID":"","statusCode":"MS-103","type":"aries","uid":"34GGIOJufL"}]}
    

Update connection status

  • Initial Agency는 Cloud Agent로 부터 받은 Message와 함께 일부 meatadata도 저장합니다. 이 meatadata의 특정 부분은 statusCode로 Message의 처리 여부를 나타내는 flag 입니다.
  • Message 상태 코드를 유지하고 그 의미를 올바르게 해석하는 것은 Initial Client의 책임입니다.

'update connection status' message type은 'statusCode'를 새로운 값으로 업데이트 합니다.

AgencyComm Outbound: {"@type":"did:sov:123456789abcdefghi1234;spec/pairwise/1.0/UPDATE_MSG_STATUS_BY_CONNS","statusCode":"MS-106","uidsByConns":[{"pairwiseDID":"6FRuB95abcmzz1nURoHyWE","uids":["Br4CoNP4TU"]}]}
AgencyComm Inbound V2: {"@type":"did:sov:123456789abcdefghi1234;spec/pairwise/1.0/MSG_STATUS_UPDATED_BY_CONNS","failed":[],"updatedUidsByConns":[{"pairwiseDID":"6FRuB95abcmzz1nURoHyWE","uids":["Br4CoNP4TU"]}]}

Get messages by connection

  • 에이전트는 모든 Connection Agent를 알고 있습니다. 이 메시지는 지정된 필터에 따라 선택된 Connection Agent에 메시지를 검색하도록 에이전트에 지시합니다.
    AgencyComm Outbound (for agency 5Sy4H2ueJLKwZzLpxcyzxV): {"@type":"did:sov:123456789abcdefghi1234;spec/pairwise/1.0/GET_MSGS_BY_CONNS","uids":["n7r26S1GKT"],"statusCodes":["MS-102","MS-103","MS-104","MS-105","MS-106"],"pairwiseDIDs":["KSuQ4ezTQMX8NaBokRB4Bk"]}
    AgencyComm Inbound V2: {"@type":"did:sov:123456789abcdefghi1234;spec/pairwise/1.0/MSGS_BY_CONNS","msgsByConns":[{"msgs":[{"payload":{"ciphertext":"CA85w94M9sE9691oD1HS9RWBCCbPguXnwwXEeUXjVpAWvkA_qc8e8YR2khSwrdM8V4_-7ua9tcHEUNyWNAUNJJ8ggFmygwphOkdyMEBmLaSQP_OHe_7MW9naVVj4phdDUKdlG4LpMuJ-NmDyKQIa-GczKquwJ-YPdXBTO9V0SI1UvAqf2zrEYxrOA6Q_5Evm9vEoFXq2qGiebWHOIKQmv5jD-8dghY56lf9L0Us8Q7faGgOw6sbJMaZwx4etsWFGE1Z1zaZCi5XNDIZI5Vwt79ezZQmDGjh1UrSsu6gXpVIheu7hHdYwbk4aIHaUxpWeuwYrVvXlaBI3uUG3wChSaYZ7lQmkiP-IrS707Y0PfKjbSwvfejvUkeNSwK38PE7TlW34_PKG3BbH4Y10Oe3Dj4kRCAmALyTLhIZWjClbe0ZewwrEYWNgdsQ_3Tv0pc3b-PV_1b8d-mQQA5wLXlB_GJ9N5Sx3PADTVHh5chhkpM_RzHdh9RAXTlEXwwnedZ0ijolT6Qtew4fBEiXMYr5aJsG6V6wGjdQ_Z7oSRk9_oT6-6EvBHwoCCtgtwooURjAs02lj5F7v7BHQ8ssJqAMtIDUev8UWizTHl2tQ2eEflBBgA9H9BcckbMrnBv8SkoADclmrv39YKlaM3Yek0c3uY-yjyoVYjr3XMLxIPzV06YhsOgXWrzH5HbTjRZgqY16NblqZPtAfy0QwJ9zfjEpphZc6aDZ9T61DbTRPE89-82QEFilbSHkEUukga3uuvZTD2aZklj2T3yyu7tbFTrxJ5Uf3B6Ol-aPQhSZ1Ot-282xqYpryCMfERohZ2CPIJzy7CsLpK1Nsg1sBZN55GMBhqmvqySb_2xl4g6hDNas9wjoXc3q_6jSsQ2CeWAWTfDfkAOQDmHPeiO6ZyPNlx4cXcImtVKbH0mq0lFRJLPBXzsB0WIgiBRG9N42ZGwg2Bq2KCYhJ9mnbEmtZ0JQKdtiArhP-A01-z6s7cmt_YC5OjtM8ThuYJsy_c12DSNi-C-k7laRcBh6ZTAV7MwBXfIPMvTYln6BZtpb-9Xs2bZfz-m13UeIG-7K9E3m4Z8Nt6tcmTBGPTev5E-T9dlRbOMefXi1iNTbwlhERXC9gUziI","iv":"Xvnqmqo_WHgNvZRo","protected":"eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiIwV3RpRjUtUEdGT1Y4dGJfNmxOMUwzNzBJN25GdVhDN3lOSWN4Q0R3dFdQSUFNeFhjdFJtSUF6Z3htb3d0Y3VyIiwiaGVhZGVyIjp7ImtpZCI6Ijk1RGZ1aEVnOHk1enBpcGZna0Y4dm5kd3AyTEt2ajNINFl4VDl5dmtRMndBIiwiaXYiOiJwLXdaN0F2QUhMVWNLMUlqZ3FEWWR3V2xMcEtLazhBbCIsInNlbmRlciI6IjB0VVNHa0lSb19UVzMwWWpCVzhZaHpLMnlPQUlWaG1fV1c2QkNnbTFweElZWEVQQmhIQTBxNEJBQkM4aUFJZm1FNXZwbThYdEItX0JjWUhLSTB5Nm1VSEEtWXcxTGxhS3dxaVJVMlNQSm1EODFGVktMLXpQcGJMSVR4RT0ifX1dfQ==","tag":"QArSgL6D0IiJ-GYfuK3g3A=="},"refMsgId":null,"senderDID":"","statusCode":"MS-103","type":"aries","uid":"b7vh36XiTe"}],"pairwiseDID":"Fp4eVWcjyRawjNWgnJmJWD"}]}
    

Update messages by connection

  • Agent is aware of all its Connection Agents. This message tells Agent to update message statusCode across specified ConnectionAgents according to specified filters to the new statusCode value.
    AgencyComm Outbound (for agency 5Sy4H2ueJLKwZzLpxcyzxV): {"@type":"did:sov:123456789abcdefghi1234;spec/pairwise/1.0/UPDATE_MSG_STATUS_BY_CONNS","statusCode":"MS-106","uidsByConns":[{"pairwiseDID":"Fp4eVWcjyRawjNWgnJmJWD","uids":["b7vh36XiTe"]}]}
    AgencyComm Inbound V2: {"@type":"did:sov:123456789abcdefghi1234;spec/pairwise/1.0/MSG_STATUS_UPDATED_BY_CONNS","failed":[],"updatedUidsByConns":[{"pairwiseDID":"Fp4eVWcjyRawjNWgnJmJWD","uids":["b7vh36XiTe"]}]}