Skip to content
This repository has been archived by the owner on Aug 29, 2024. It is now read-only.

Commit

Permalink
feat(FTL-13852): add deprecation warning (#329)
Browse files Browse the repository at this point in the history
* feat: add deprecation warning

* feat: add warning in all readme
  • Loading branch information
YoussefAWasfy authored Mar 20, 2024
1 parent 2cdc8f6 commit 9e518b9
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 10 deletions.
36 changes: 26 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Affinidi SDK Monorepo

> :warning: **WARNING:**
> Please be advised that the Affinidi SDK is deprecated and will no longer receive future updates. We have initiated this transition to streamline our development efforts and enhance the efficiency of our systems.
The open-source [Affinidi Library](https://github.com/affinityproject/affinidi-core-sdk) provides easy-to-use Typescript packages that enable developers to create and manage true certificate-enabled Digital Identities (DID) on the Affinidi Network.

The Affinidi open source monorepo has the following structure
Expand Down Expand Up @@ -33,70 +36,83 @@ The Affinidi open source monorepo has the following structure
```

### common-libs/common
The `common` folder contains the `@affinidi/common` [npm package](https://www.npmjs.com/package/@affinidi/common). This package implements DID, VC, and VP utilities that are used throughout Affinidi libraries and services. This package is considered more *opinionated* because it supports DID methods and VC proofs that Affinidi actively supports.

The `common` folder contains the `@affinidi/common` [npm package](https://www.npmjs.com/package/@affinidi/common). This package implements DID, VC, and VP utilities that are used throughout Affinidi libraries and services. This package is considered more _opinionated_ because it supports DID methods and VC proofs that Affinidi actively supports.

The main entry point to this package is a class called `Affinity`. In this class you will find utilities for handling JSON-LD, DIDs, VCs, VPs, JWTs, and legacy credential types from early MVPs.

### common-libs/tiny-lds-ecdsa-secp256k1-2019

This packages is the same as https://github.com/decentralized-identity/lds-ecdsa-secp256k1-2019.js, but uses `tiny-secp256k1` for signing.

### common-libs/did-auth-lib

The `did-auth-lib` folder contains the `@affinidi/affinidi-did-auth-lib` [npm package](https://www.npmjs.com/package/@affinidi/affinidi-did-auth-lib). This library allows proving that the client/user is the owner of provided `DID`. Based on this proof App builders can give the client/user access to the appropriate resources.

### common-libs/vc-common
The `vc-common` folder contains the `@affinidi/vc-common` [npm package](https://www.npmjs.com/package/@affinidi/vc-common). This package implements VC and VP types and utility functions that help with type-safe credential issuance and verification. It is considered less *opinionated* because it supports a wider variety of DIDs and VCs as long as they conform to the core data model.

The `vc-common` folder contains the `@affinidi/vc-common` [npm package](https://www.npmjs.com/package/@affinidi/vc-common). This package implements VC and VP types and utility functions that help with type-safe credential issuance and verification. It is considered less _opinionated_ because it supports a wider variety of DIDs and VCs as long as they conform to the core data model.

Find more docs [here](https://docs.affinity-project.org/common/getting-started).

### sdk/core

The `core` folder contins the `@affinidi/wallet-core-sdk` [npm package](https://www.npmjs.com/package/@affinidi/wallet-core-sdk). This package implements the common logic for account registration & management, credential issuance & verification and more.

The main entry point is a class called `CommonNetworkMember`. This class can be initialized with specific service endpoints, or if left to it's defaults will use Affinidi's staging environment.

### sdk/browser

The `browser` folder contains the `@affinidi/wallet-browser-sdk` [npm package](https://www.npmjs.com/package/@affinidi/wallet-browser-sdk). This package extends the `wallet-core-sdk` logic with client specific implementations for crypto operations. As a result of crypto operations being platform specific, this package implements the logic to communicate with the encrypted data vault for VC storage.

The main entry point is a class called `AffinidiWallet`. Similar to `CommonNetworkMember`, the class can be initialized with specific service endpoints, or can be left to use Affinidi's staging environment by default.

### sdk/expo

The `expo` folder contains the `@affinidi/wallet-expo-sdk` [npm package](https://www.npmjs.com/package/@affinidi/wallet-expo-sdk). This package extends the `wallet-core-sdk` logic with client specific implementations for crypto operations. As a result of crypto operations being platform specific, this package implements the logic to communicate with the encrypted data vault for VC storage.

The main entry point is a class called `AffinidiWallet`. Similar to `CommonNetworkMember`, the class can be initialized with specific service endpoints, or can be left to use Affinidi's staging environment by default.

### sdk/react-native

The `react-native` folder contains the `@affinidi/wallet-react-native-sdk` [npm package](https://www.npmjs.com/package/@affinidi/wallet-react-native-sdk). This package extends the `wallet-core-sdk` logic with client specific implementations for crypto operations. As a result of crypto operations being platform specific, this package implements the logic to communicate with the encrypted data vault for VC storage.

The main entry point is a class called `AffinidiWallet`. Similar to `CommonNetworkMember`, the class can be initialized with specific service endpoints, or can be left to use Affinidi's staging environment by default.

### sdk/vc-data

The `vc-data` folder contains the `@affinidi/vc-data` [npm package](https://www.npmjs.com/package/@affinidi/vc-data). This package contains schema helpers and building blocks to issue JSON-LD credentials. The `vc-data` utilities also specify a process through which developers can propose additions or request assistance in schema development.

### sdk/issuer-kit

The `issuer-kit` folder contains the `@affinidi/issuer-kit` [npm package](https://www.npmjs.com/package/@affinidi/issuer-kit). This package contains a framework for launching microservices to connect to external data providers & issue VCs.

## Prerequisites

Before we begin, make sure you have the following installed:

- Node.js v16.17.0 or later
- npm v8.15.0 or later

## API Key

You need to to use an API Key when you initialize the SDK. Here are the steps required to generate and start using the API Key: https://github.com/affinityproject/affinidi-core-sdk/tree/master/sdk/core#create-api-key

## npm commands

The following commands should be supported by all projects in monorepo

* `build`: should build package
* `lint`: should run lint
* `checkLicenses`: should check licenses
* `test:unit`: should run unit tests, if any
* `test:integration`: should run integration tests, if any
* `test`: should run all tests
* `test:coverage`: should run all tests with coverage
* `test:coverage:codeclimate`: should run `test:coverage` and save codeclimate results
- `build`: should build package
- `lint`: should run lint
- `checkLicenses`: should check licenses
- `test:unit`: should run unit tests, if any
- `test:integration`: should run integration tests, if any
- `test`: should run all tests
- `test:coverage`: should run all tests with coverage
- `test:coverage:codeclimate`: should run `test:coverage` and save codeclimate results

Workflow to publish npm packages is:

1. `npm run bootstrap` in order to link and install all dependencies;
2. `npm run build` in order to build all projects in this monorepo;
3. `npm run lint`, `npm run test`, `npm run checkLicenses` etc;
Expand Down
3 changes: 3 additions & 0 deletions sdk/browser/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Affinity SDK for browser

> :warning: **WARNING:**
> Please be advised that the Affinidi SDK is deprecated and will no longer receive future updates. We have initiated this transition to streamline our development efforts and enhance the efficiency of our systems.
> WARNING **Action required from you**
> Update your services to use Affinidi SDK v6.0.4 or above.
> Note please pay attention to the changelog while upgrading the version of SDK as some methods may be changed or deprecated.
Expand Down
3 changes: 3 additions & 0 deletions sdk/core/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Affinity Core SDK - Affinity network DID solution

> :warning: **WARNING:**
> Please be advised that the Affinidi SDK is deprecated and will no longer receive future updates. We have initiated this transition to streamline our development efforts and enhance the efficiency of our systems.
> WARNING **Action required from you**
> Update your services to use Affinidi SDK v6.0.4 or above.
> Note please pay attention to the changelog while upgrading the version of SDK as some methods may be changed or deprecated.
Expand Down
3 changes: 3 additions & 0 deletions sdk/expo/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Affinity SDK for Expo

> :warning: **WARNING:**
> Please be advised that the Affinidi SDK is deprecated and will no longer receive future updates. We have initiated this transition to streamline our development efforts and enhance the efficiency of our systems.
> WARNING **Action required from you**
> Update your services to use Affinidi SDK v6.0.4 or above.
> Note please pay attention to the changelog while upgrading the version of SDK as some methods may be changed or deprecated.
Expand Down
3 changes: 3 additions & 0 deletions sdk/issuer-kit/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
> :warning: **WARNING:**
> Please be advised that the Affinidi SDK is deprecated and will no longer receive future updates. We have initiated this transition to streamline our development efforts and enhance the efficiency of our systems.
# Introduction

Issuer Kit is a library that spins up a VC producing server based on configurations defined by the Application. The Application defines a few key functions required to build the VC, including any helpers or external connections required to collect and validate the data prior to issuance.
Expand Down
3 changes: 3 additions & 0 deletions sdk/node/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Affinity SDK for Node

> :warning: **WARNING:**
> Please be advised that the Affinidi SDK is deprecated and will no longer receive future updates. We have initiated this transition to streamline our development efforts and enhance the efficiency of our systems.
> WARNING **Action required from you**
> Update your services to use Affinidi SDK v6.0.4 or above.
> Note please pay attention to the changelog while upgrading the version of SDK as some methods may be changed or deprecated.
Expand Down
3 changes: 3 additions & 0 deletions sdk/react-native/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Affinity SDK for React Native.

> :warning: **WARNING:**
> Please be advised that the Affinidi SDK is deprecated and will no longer receive future updates. We have initiated this transition to streamline our development efforts and enhance the efficiency of our systems.
> WARNING **Action required from you**
> Update your services to use Affinidi SDK v6.0.4 or above.
> Note please pay attention to the changelog while upgrading the version of SDK as some methods may be changed or deprecated.
Expand Down
3 changes: 3 additions & 0 deletions sdk/vc-data/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# VC Data

> :warning: **WARNING:**
> Please be advised that the Affinidi SDK is deprecated and will no longer receive future updates. We have initiated this transition to streamline our development efforts and enhance the efficiency of our systems.
This repository contains the suggested specification for Verifiable Credential data, referred to as `credentialSubject` in the VC data model. In general, these schemas are based on [schema.org](https://schema.org) base types such as [Person](https://schema.org/Person) and [Organization](https://schema.org/Organization), with custom extensions for concepts not described by schema.org.

## Installation
Expand Down

0 comments on commit 9e518b9

Please sign in to comment.