Skip to content

Latest commit

 

History

History
1540 lines (921 loc) · 36.7 KB

iam.IAM.md

File metadata and controls

1540 lines (921 loc) · 36.7 KB

Class: IAM

iam.IAM

Decentralized Identity and Access Management (IAM) Type

Hierarchy

Table of contents

Constructors

Accessors

Methods

Constructors

constructor

new IAM(__namedParameters?)

IAM Constructor

Parameters

Name Type
__namedParameters ConnectionOptions

Inherited from

IAMBase.constructor

Accessors

address

get address(): undefined | string

Returns

undefined | string

Methods

acceptAssetOffer

acceptAssetOffer(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.assetDID string

Returns

Promise<void>


cancelAssetOffer

cancelAssetOffer(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.assetDID string

Returns

Promise<void>


changeAppOwnership

changeAppOwnership(__namedParameters): Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

changeAppOwnership

description change owner ship of app subdomain and all app owned subdomains

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.newOwner string
__namedParameters.returnSteps? boolean

Returns

Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

return array of steps needed to change ownership


changeOrgOwnership

changeOrgOwnership(__namedParameters): Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

changeOrgOwnership

description change owner ship of org subdomain and all org owned roles subdomains

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.newOwner string
__namedParameters.returnSteps? boolean

Returns

Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

return array of steps needed to change ownership


changeRoleOwnership

changeRoleOwnership(__namedParameters): Promise<void>

changeRoleOwnership

description change ownership of role subdomain

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.newOwner string

Returns

Promise<void>


checkExistenceOfDomain

checkExistenceOfDomain(__namedParameters): Promise<boolean>

checkExistenceOfDomain

description check existence of domain in ENS registry

Parameters

Name Type
__namedParameters Object
__namedParameters.domain string

Returns

Promise<boolean>

true or false whatever the domain is present


closeConnection

closeConnection(): Promise<void>

description Closes the connection between application and the signer's wallet

Returns

Promise<void>

Inherited from

IAMBase.closeConnection


connectToCacheServer

connectToCacheServer(): Promise<void>

description Establishes connection to the cache serverand sets public key and identity token

Returns

Promise<void>

Inherited from

IAMBase.connectToCacheServer


connectToDIDRegistry

connectToDIDRegistry(): Promise<void>

description Creates the signer's DID document if it does not exist

Returns

Promise<void>

Inherited from

IAMBase.connectToDIDRegistry


createApplication

createApplication(__namedParameters): Promise<{ info: string = "Set subdomain for application"; next: () => Promise<void> ; tx: EncodedCall }[]>

createApp

description creates role (create subdomain, sets the domain name and sets the role definition to metadata record in ENS Domain)

description creates roles subdomain for the app namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.appName string
__namedParameters.data IAppDefinition
__namedParameters.namespace string
__namedParameters.returnSteps? boolean

Returns

Promise<{ info: string = "Set subdomain for application"; next: () => Promise<void> ; tx: EncodedCall }[]>


createClaimRequest

createClaimRequest(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.claim Object
__namedParameters.claim.claimType string
__namedParameters.claim.claimTypeVersion number
__namedParameters.claim.fields { key: string ; value: string | number }[]
__namedParameters.registrationTypes? RegistrationTypes[]
__namedParameters.subject? string

Returns

Promise<void>


createDelegateProof

createDelegateProof(delegateKey, rpcUrl, identity): Promise<string>

description create a proof of identity delegate

Parameters

Name Type Description
delegateKey string private key of the delegate
rpcUrl string the url of the blockchain provider
identity string Did of the delegate

Returns

Promise<string>

token of delegate


createIdentityProof

createIdentityProof(): Promise<string>

description create a public claim to prove identity

Returns

Promise<string>

JWT token of created identity


createOrganization

createOrganization(__namedParameters): Promise<{ info: string = "Create organization subdomain"; next: () => Promise<void> ; tx: EncodedCall }[]>

createOrganization

description creates organization (create subdomain, sets the domain name and sets the role definition to metadata record in ENS Domain)

description and sets subdomain for roles and app for org namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.data IOrganizationDefinition
__namedParameters.namespace string
__namedParameters.orgName string
__namedParameters.returnSteps? boolean

Returns

Promise<{ info: string = "Create organization subdomain"; next: () => Promise<void> ; tx: EncodedCall }[]>


createProofClaim

createProofClaim(__namedParameters): Promise<string>

createProofClaim

description creates a proof of a claim

Parameters

Name Type
__namedParameters Object
__namedParameters.claimUrl string
__namedParameters.saltedFields ISaltedFields

Returns

Promise<string>

proof token


createPublicClaim

createPublicClaim(__namedParameters): Promise<string>

createPublicClaim

description create a public claim based on data provided

Parameters

Name Type
__namedParameters Object
__namedParameters.data ClaimData
__namedParameters.subject? string

Returns

Promise<string>

JWT token of created claim


createRole

createRole(__namedParameters): Promise<{ info: string = "Create subdomain for role"; next: () => Promise<void> ; tx: EncodedCall }[]>

createRole

description creates role (create subdomain, sets the domain name and sets the role definition to metadata record in ENS Domain)

Parameters

Name Type
__namedParameters Object
__namedParameters.data IRoleDefinition
__namedParameters.namespace string
__namedParameters.returnSteps? boolean
__namedParameters.roleName string

Returns

Promise<{ info: string = "Create subdomain for role"; next: () => Promise<void> ; tx: EncodedCall }[]>

information (true/false) if the role was created


createSelfSignedClaim

createSelfSignedClaim(__namedParameters): Promise<string>

createSelfSignedClaim

description creates self signed claim and upload the data to ipfs

Parameters

Name Type
__namedParameters Object
__namedParameters.data ClaimData
__namedParameters.subject? string

Returns

Promise<string>


decodeJWTToken

decodeJWTToken(__namedParameters): Promise<string | { [key: string]: string | object; }>

Parameters

Name Type
__namedParameters Object
__namedParameters.token string

Returns

Promise<string | { [key: string]: string | object; }>


deleteApplication

deleteApplication(__namedParameters): Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

deleteApplication

description delete application and roles

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.returnSteps? boolean

Returns

Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>


deleteClaim

deleteClaim(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.id string

Returns

Promise<void>


deleteOrganization

deleteOrganization(__namedParameters): Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

deleteOrganization

description delete organization and roles

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.returnSteps? boolean

Returns

Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>


deleteRole

deleteRole(__namedParameters): Promise<void>

deleteRole

description delete role

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string

Returns

Promise<void>


getAppsByOrgNamespace

getAppsByOrgNamespace(__namedParameters): Promise<IApp[]>

getENSTypesByOwner

description get all applications for organization namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string

Returns

Promise<IApp[]>

array of subdomains or empty array when there is no subdomains


getAssetById

getAssetById(__namedParameters): Promise<Asset>

Parameters

Name Type
__namedParameters Object
__namedParameters.id string

Returns

Promise<Asset>


getAssetHistory

getAssetHistory(__namedParameters): Promise<AssetHistory[]>

Parameters

Name Type
__namedParameters Object
__namedParameters.id string
__namedParameters.order? Order
__namedParameters.skip? number
__namedParameters.take? number
__namedParameters.type? AssetHistoryEventType

Returns

Promise<AssetHistory[]>


getClaimsByIssuer

getClaimsByIssuer(__namedParameters): Promise<Claim[]>

description - Returns claims for given issuer. Allows filtering by status and parent namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.did string
__namedParameters.isAccepted? boolean
__namedParameters.parentNamespace? string

Returns

Promise<Claim[]>


getClaimsByRequester

getClaimsByRequester(__namedParameters): Promise<Claim[]>

description - Returns claims for given requester. Allows filtering by status and parent namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.did string
__namedParameters.isAccepted? boolean
__namedParameters.parentNamespace? string

Returns

Promise<Claim[]>


getClaimsBySubject

getClaimsBySubject(__namedParameters): Promise<Claim[]>

description - Returns claims for given subject. Allows filtering by status and parent namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.did string
__namedParameters.isAccepted? boolean
__namedParameters.parentNamespace? string

Returns

Promise<Claim[]>


getClaimsBySubjects

getClaimsBySubjects(subjects): Promise<Claim[]>

Parameters

Name Type
subjects string[]

Returns

Promise<Claim[]>


getDefinition

getDefinition(__namedParameters): Promise<IRoleDefinition | IAppDefinition | IOrganizationDefinition>

getDefinition

description get role definition form ens domain metadata record

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.type ENSNamespaceTypes

Returns

Promise<IRoleDefinition | IAppDefinition | IOrganizationDefinition>

metadata string or empty string when there is no metadata


getDid

getDid(): undefined | string

Get DID

Returns

undefined | string

did string if connected to wallet, if not returns undefined


getDidDocument

getDidDocument(__namedParameters?): Promise<Object>

getDidDocument

Parameters

Name Type
__namedParameters undefined | { did?: string ; includeClaims?: boolean }

Returns

Promise<Object>

whole did document if connected, if not returns null


getENSTypesByOwner

getENSTypesByOwner(__namedParameters): Promise<IOrganization[]> | Promise<IApp[]> | Promise<IRole[]>

getENSTypesByOwner

Parameters

Name Type
__namedParameters Object
__namedParameters.owner string
__namedParameters.type ENSNamespaceTypes
__namedParameters.withRelations? boolean

Returns

Promise<IOrganization[]> | Promise<IApp[]> | Promise<IRole[]>


getENSTypesBySearchPhrase

getENSTypesBySearchPhrase(__namedParameters): Promise<(IOrganization | IApp | IRole)[]>

getENSTypesBySearchPhrase

Parameters

Name Type
__namedParameters Object
__namedParameters.search string
__namedParameters.types? ("App" | "Org" | "Role")[]

Returns

Promise<(IOrganization | IApp | IRole)[]>


getOfferedAssets

getOfferedAssets(__namedParameters?): Promise<Asset[]>

Parameters

Name Type
__namedParameters Object
__namedParameters.did? string

Returns

Promise<Asset[]>


getOrgHierarchy

getOrgHierarchy(__namedParameters): Promise<IOrganization>

getOrgHierarchy

description get all hierarchy of an organization (20 levels deep)

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string

Returns

Promise<IOrganization>

organization with all nested subOrgs


getOwnedAssets

getOwnedAssets(__namedParameters?): Promise<Asset[]>

Parameters

Name Type
__namedParameters Object
__namedParameters.did? string

Returns

Promise<Asset[]>


getPreviouslyOwnedAssets

getPreviouslyOwnedAssets(__namedParameters): Promise<Asset[]>

Parameters

Name Type
__namedParameters Object
__namedParameters.owner string

Returns

Promise<Asset[]>


getProviderType

getProviderType(): WalletProvider

Get the current initialized provider type

Returns

WalletProvider

provider type if the session is active if not undefined


getRoleDIDs

getRoleDIDs(__namedParameters): Promise<string[]>

getRoleDIDs

description get all users did which have certain role

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string

Returns

Promise<string[]>

array of did's


getRolesByNamespace

getRolesByNamespace(__namedParameters): Promise<IRole[]>

getRolesByNamespace

description get all subdomains for certain domain

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.parentType Application | Organization

Returns

Promise<IRole[]>

array of subdomains or empty array when there is no subdomains


getRolesDefinition

getRolesDefinition(__namedParameters): Promise<Record<string, IRoleDefinition>>

getRolesDefinition

description get roles definition form ens domain metadata record

Parameters

Name Type
__namedParameters Object
__namedParameters.namespaces string[]

Returns

Promise<Record<string, IRoleDefinition>>

array of metadata strings


getSigner

getSigner(): undefined | JsonRpcSigner | Signer

Get signer

Returns

undefined | JsonRpcSigner | Signer

JsonRpcSigner if connected to wallet, if not returns undefined


getSubOrgsByOrgNamespace

getSubOrgsByOrgNamespace(__namedParameters): Promise<IOrganization[]>

getSubOrgsByOrgNamespace

description get all sub organizations for organization namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string

Returns

Promise<IOrganization[]>

array of subdomains or empty array when there is no subdomains


getSubdomains

getSubdomains(__namedParameters): Promise<string[]>

getSubdomains

description get all subdomains for certain domain

Parameters

Name Type
__namedParameters Object
__namedParameters.domain string
__namedParameters.mode? "ALL" | "FIRSTLEVEL"

Returns

Promise<string[]>

array of subdomains or empty array when there is no subdomains


getUserClaims

getUserClaims(__namedParameters?): Promise<IServiceEndpoint & ClaimData[]>

getUserClaims

description get user claims

Parameters

Name Type
__namedParameters undefined | { did?: string }

Returns

Promise<IServiceEndpoint & ClaimData[]>


initializeConnection

initializeConnection(__namedParameters?): Promise<InitializeData>

Initialize connection to wallet

description creates web3 provider and establishes secure connection to selected wallet

summary if not connected to wallet will show connection modal, but if already connected (data stored in localStorage) will only return initial data without showing modal

requires needs to be called before any of other methods

Parameters

Name Type
__namedParameters Object
__namedParameters.createDocument? boolean
__namedParameters.initCacheServer? boolean
__namedParameters.reinitializeMetamask? boolean
__namedParameters.walletProvider? WalletProvider

Returns

Promise<InitializeData>

did string, status of connection and info if the user closed the wallet selection modal


isConnected

isConnected(): boolean

isConnected

Returns

boolean

info if the connection to wallet/signer is already established


isOwner

isOwner(__namedParameters): Promise<boolean>

isOwner

description check ownership of the domain

default if user is not specified it will check the current logged user

Parameters

Name Type
__namedParameters Object
__namedParameters.domain string
__namedParameters.user? string

Returns

Promise<boolean>

true or false whatever the passed is user is a owner of domain


isSessionActive

isSessionActive(): boolean

description Checks if the session is active

Returns

boolean

boolean that indicates the session state

Inherited from

IAMBase.isSessionActive


issueClaim

issueClaim(__namedParameters): Promise<string>

Parameters

Name Type
__namedParameters Object
__namedParameters.claim Object
__namedParameters.claim.claimType string
__namedParameters.claim.claimTypeVersion number
__namedParameters.claim.fields { key: string ; value: string | number }[]
__namedParameters.subject string

Returns

Promise<string>


issueClaimRequest

issueClaimRequest(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.id string
__namedParameters.registrationTypes RegistrationTypes[]
__namedParameters.requester string
__namedParameters.subjectAgreement string
__namedParameters.token string

Returns

Promise<void>


issuePublicClaim

issuePublicClaim(__namedParameters): Promise<string>

issuePublicClaim

description issue a public claim

Parameters

Name Type
__namedParameters Object
__namedParameters.publicClaim? IPublicClaim
__namedParameters.token? string

Returns

Promise<string>

return issued token


namespacesWithRelations

namespacesWithRelations(namespaces): Promise<{ namespace: string ; owner: string }[]>

description Collects all namespaces related data. Currently its includes only owner

Parameters

Name Type
namespaces string[]

Returns

Promise<{ namespace: string ; owner: string }[]>


offerAsset

offerAsset(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.assetDID string
__namedParameters.offerTo string

Returns

Promise<void>


on

on(event, eventHandler): void

description Defines event handlers for change of account, change of network, disconnection

requires to be called after the connection to wallet was initialized

Parameters

Name Type
event "accountChanged" | "networkChanged" | "disconnected"
eventHandler () => void

Returns

void

Inherited from

IAMBase.on


publishPublicClaim

publishPublicClaim(__namedParameters): Promise<string>

publishPublicClaim

description store claim data in ipfs and save url to DID document services

Parameters

Name Type
__namedParameters Object
__namedParameters.token string

Returns

Promise<string>

ulr to ipfs


registerAsset

registerAsset(): Promise<string>

Returns

Promise<string>


registrationTypesOfRoles

registrationTypesOfRoles(roles): Promise<Record<string, Set<RegistrationTypes>>>

Parameters

Name Type
roles string[]

Returns

Promise<Record<string, Set<RegistrationTypes>>>


rejectAssetOffer

rejectAssetOffer(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.assetDID string

Returns

Promise<void>


rejectClaimRequest

rejectClaimRequest(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.id string
__namedParameters.requesterDID string

Returns

Promise<void>


revokeDidDocument

revokeDidDocument(): Promise<boolean>

revokeDidDocument

description revokes did document

Returns

Promise<boolean>

information (true/false) if the DID document was revoked


setRoleDefinition

setRoleDefinition(__namedParameters): Promise<void>

setRoleDefinition

description sets role definition in ENS domain

description please use it only when you want to update role definitions for already created role (domain)

Parameters

Name Type
__namedParameters Object
__namedParameters.data IRoleDefinition | IAppDefinition | IOrganizationDefinition
__namedParameters.domain string

Returns

Promise<void>


subscribeTo

subscribeTo(__namedParameters): Promise<undefined | number>

Parameters

Name Type
__namedParameters Object
__namedParameters.subject? string
__namedParameters.messageHandler (data: IMessage) => void

Returns

Promise<undefined | number>


unsubscribeFrom

unsubscribeFrom(subscriptionId): Promise<void>

Parameters

Name Type
subscriptionId number

Returns

Promise<void>


updateDidDocument

updateDidDocument(options): Promise<boolean>

description updates did document based on data provided

Parameters

Name Type Description
options Object Options to connect with blockchain
options.data IUpdateData New attribute value
options.did? string Asset did to be updated
options.didAttribute DIDAttribute Type of document to be updated
options.validity? number Time (s) for the attribute to expire

Returns

Promise<boolean>

true if document is updated successfuly


validateOwnership

validateOwnership(__namedParameters): Promise<string[]>

validateOwnership

description check ownership of the domain and subdomains of org, app or role

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.type ENSNamespaceTypes

Returns

Promise<string[]>

true or false whatever the passed is user is a owner of org, app or role


verifyPublicClaim

verifyPublicClaim(__namedParameters): Promise<IPublicClaim>

verifyPublicClaim

description verifies issued token of claim

throws if the proof failed

Parameters

Name Type
__namedParameters Object
__namedParameters.claimUrl string

Returns

Promise<IPublicClaim>

public claim data


isMetamaskExtensionPresent

Static isMetamaskExtensionPresent(): Promise<Object>

Returns

Promise<Object>