Skip to content

Latest commit

 

History

History

schema

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Universal Ledger Agent - Aries Cloudagent Schema Plugin

npm (scoped)

This package handles everything that has to do with schemas in Hyperledger Aries. It allows to create and retrieve schemas from the ledger connected to the Aries Cloudagent.

Usage

SchemaController

import { EventHandler } from 'universal-ledger-agent'
import { SchemaController } from '@ula-aca/schema'

const schemaController = new SchemaController({
  basePath: 'https://aca-py-api.com'
})

const eventHandler = new EventHandler([schemaController])

@ula-aca/schema/get-schema-by-id

Gets a schema from the ledger

import { EventHandler, UlaResponse } from 'universal-ledger-agent'
import {
  SchemaController,
  GetSchemaByIdMessage,
  SchemaMessageTypes
} from '@ula-aca/schema'

const schemaController = new SchemaController({
  basePath: 'https://aca-py-api.com'
})

const eventHandler = new EventHandler([schemaController])

const message: GetSchemaByIdMessage = {
  type: SchemaMessageTypes.GET_SCHEMA_BY_ID,
  body: {
    schema_id: 'WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0'
  }
}

eventHandler.processMsg(message, (response: UlaResponse) => {
  if (response.statusCode < 200 || response.statusCode >= 300) {
    // error
  } else {
    // response.body is response from /schemas/{id} api endpoint in aca-py
    // https://ula-aca.github.io/aries-cloudagent-interface-javascript/#/schema/get_schemas__id_
    const result: GetSchemaByIdResult = response.body
  }
})

@ula-aca/schema/get-created-schemas

Search for matching schema that agent originated

import { EventHandler, UlaResponse } from 'universal-ledger-agent'
import {
  SchemaController,
  GetCreatedSchemasMessage,
  SchemaMessageTypes
} from '@ula-aca/schema'

const schemaController = new SchemaController({
  basePath: 'https://aca-py-api.com'
})

const eventHandler = new EventHandler([schemaController])

const message: GetCreatedSchemasMessage = {
  type: SchemaMessageTypes.GET_CREATED_SCHEMAS,
  body: {
    // schema_id: '',
    // schema_issuer_did: '',
    // schema_name: '',
    // schema_version: ''
  }
}

eventHandler.processMsg(message, (response: UlaResponse) => {
  if (response.statusCode < 200 || response.statusCode >= 300) {
    // error
  } else {
    // response.body is response from /schemas/created api endpoint in aca-py
    // https://ula-aca.github.io/aries-cloudagent-interface-javascript/#/schema/get_schemas_created
    const result: GetCreatedSchemasResult = response.body
  }
})

@ula-aca/schema/create-schema

Sends a schema to the ledger

import { EventHandler, UlaResponse } from 'universal-ledger-agent'
import {
  SchemaController,
  CreateSchemaMessage,
  SchemaMessageTypes
} from '@ula-aca/schema'

const schemaController = new SchemaController({
  basePath: 'https://aca-py-api.com'
})

const eventHandler = new EventHandler([schemaController])

const message: CreateSchemaMessage = {
  type: SchemaMessageTypes.CREATE_SCHEMA,
  body: {
    schema_name: 'ExampleSchema',
    schema_version: '1.0',
    attributes: ['first_name', 'last_name']
  }
}

eventHandler.processMsg(message, (response: UlaResponse) => {
  if (response.statusCode < 200 || response.statusCode >= 300) {
    // error
  } else {
    // response.body is response from /schemas post request api endpoint in aca-py
    // https://ula-aca.github.io/aries-cloudagent-interface-javascript/#/schema/post_schemas
    const result: CreateSchemaResult = response.body
  }
})

Examples

For example usage see the examples/ directory.