Skip to content
This repository was archived by the owner on May 19, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Install dependencies
```
npm i
npm run setup
npm run build
```

Install IPFS CLI. Find your option: https://docs.ipfs.io/how-to/command-line-quick-start/.
Expand Down
10 changes: 5 additions & 5 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ module.exports = {
testEnvironment: 'node',
reporters: ['default', 'jest-junit'],
testResultsProcessor: 'jest-junit',
"globals": {
"ts-jest": {
"tsConfig": "./modules/tsconfig.settings.json"
globals: {
'ts-jest': {
tsConfig: './modules/tsconfig.settings.json'
}
},
};
}
}
101 changes: 99 additions & 2 deletions modules/ipfs-cpinner-client/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,100 @@
# IPFS centralized pinner client
<p align="middle">
<img src="https://www.rifos.org/assets/img/logo.svg" alt="logo" height="100" >
</p>
<h3 align="middle"><code>@rsksmart/ipfs-cpinner-client</code></h3>
<p align="middle">
RIF Identity - IPFS Centralized Pinner Client
</p>
<p align="middle">
<a href="https://rsksmart.github.io/rif-identity-docs/data-vault/cpinner/cpinner-client">
<img src="https://img.shields.io/badge/-docs-brightgreen" alt="docs" />
</a>
</p>

_This API is still incompatible with current service_
A Web Client to simplify the way the services provided by the IPFS Centralized Data Vault Service are consumed.

## Features

- Manage authentication according to the [DID Auth protocol](https://rsksmart.github.io/rif-identity-docs/ssi/libraries/express-did-auth)

- CRUD operations over the RIF Data Vault

- Stores the authentication credentials in the given storage

## Quick Usage

```typescript
import DataVaultWebClient, { ClientKeyValueStorage } from '@rsksmart/ipfs-cpinner-client'

const serviceUrl = 'http://your-ipfs-cpinner-service.com'
const storage: ClientKeyValueStorage = myCustomStorage

// the following fields are required just to perform write operations
const serviceDid = 'did:ethr:rsk:0x123456789....abc'
const did = 'did:ethr:rsk:0xabcdef....123'
const signer = mySignerFunction

const client = new DataVaultWebClient({ serviceUrl, did, signer, serviceDid, storage })
```

### Get

```typescript
import DataVaultWebClient from '@rsksmart/ipfs-cpinner-client'

const client = new DataVaultWebClient({ serviceUrl })

const key = 'EmailCredential'

const credentials = await client.get({ did, key })
```

### Create

```typescript
import DataVaultWebClient from '@rsksmart/ipfs-cpinner-client'

const client = new DataVaultWebClient({ serviceUrl, did, signer, serviceDid })

const key = 'MyKey'
const content = 'this is my content'

const id = await client.create({ key, content })
```

### Swap

```typescript
import DataVaultWebClient from '@rsksmart/ipfs-cpinner-client'

const client = new DataVaultWebClient({ serviceUrl, did, signer, serviceDid })

const key = 'MyKey'
const content = 'this is my content'

const id = await client.swap({ key, content })
```

### Delete

```typescript
import DataVaultWebClient from '@rsksmart/ipfs-cpinner-client'

const client = new DataVaultWebClient({ serviceUrl, did, signer, serviceDid })

const key = 'MyKey'

await client.delete({ key })
```

## Advanced usage

See our [documentation](https://rsksmart.github.io/rif-identity-docs/data-vault/cpinner/cpinner-client)

## Open work

- Encrypt/decrypt content prior to save or after retrieving it from the service

## Test

From base repo directory run `npm test` or any of the described [test script variants](../../README#test).
Loading