Skip to content

Commit

Permalink
refactor: rename AFJ to Credo
Browse files Browse the repository at this point in the history
Signed-off-by: Karim Stekelenburg <[email protected]>
  • Loading branch information
karimStekelenburg committed Jan 29, 2024
1 parent c7b038c commit 7b620b3
Show file tree
Hide file tree
Showing 16 changed files with 68 additions and 68 deletions.
16 changes: 8 additions & 8 deletions guides/concepts/agents.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
# Agents

When working with any Aries implementation, you will interact with an Aries
agent. This will be either directly or via a REST API, like [the Aries
When working with any Credo implementation, you will interact with an Credo
agent. This will be either directly or via a REST API, like [the Credo
framework REST
API](https://github.com/hyperledger/aries-framework-javascript-ext/tree/main/packages/rest).

### Characteristics

An Aries agent has three essential characteristics:
An Credo agent has three essential characteristics:

1. It acts as a fiduciary on behalf of a single identity owner (or, for agents
of things like IoT devices, pets, and similar things, a single controller).
1. It holds cryptographic keys that uniquely embody its delegated
authorization.
1. It interacts using interoperable DIDComm protocols, more on that later.

What this means is that an Aries agent will act your behalf to issue create
What this means is that an Credo agent will act your behalf to issue create
connections, issue credentials, send messages etc. It also have a cryptographic
toolkit with which it can uniquely, securely and verifiably operate. And lastly
it interacts with other entities, this could be another agent, via [DIDComm
protocols](https://identity.foundation/didcomm-messaging/spec/) later on. The
Aries agent in the context of the Credo ecosystem is your entry-point
Credo agent in the context of the Credo ecosystem is your entry-point
to all of the functionality.

### Categories

There are many categories of Aries agents and we will group them into two
There are many categories of Credo agents and we will group them into two
categories; a mobile agent and a cloud agent. These agents are grouped based on
their "location", e.g. a mobile wallet or server. Some other categories are a
static, thin, thick and rich Aries agents. These agents are grouped based on
static, thin, thick and rich Credo agents. These agents are grouped based on
their complexity instead of their "location". The Credo ecosystem
allows you to create a mobile agent and a cloud agent. It also allows any of
the complexity categorized agents.

### Examples

Some examples of things that are Aries agent-like (since the definition can be
Some examples of things that are Credo agent-like (since the definition can be
bit loose, these examples might help to get a clearer picture):

**A mobile wallet**
Expand Down
2 changes: 1 addition & 1 deletion guides/ecosystem/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ You can find their documentation here:

### Credo

Credo (core) is at the core of the Credo ecosystem. AFJ provides all the functionality related to cryptography, storage, messaging and more that is required
Credo (core) is at the core of the Credo ecosystem. Credo provides all the functionality related to cryptography, storage, messaging and more that is required

## Contributing in the Credo Ecosystem

Expand Down
2 changes: 1 addition & 1 deletion guides/extensions/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import DocCardList from '@theme/DocCardList';

Credo Extensions is an extensions repository to Credo. It hosts libraries built on top of Credo that don't necessarily belong to the core of the project.

Currently, there are four packages in the extension repository. Example extension libraries include React Hooks for AFJ and a REST API wrapper.
Currently, there are four packages in the extension repository. Example extension libraries include React Hooks for Credo and a REST API wrapper.

| Package | Version | Description |
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
Expand Down
2 changes: 1 addition & 1 deletion guides/extensions/push-notifications.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Push Notifications

The Push Notifications plugin package provides a way for you to register your APNs and Firebase push notification token at an agent, allowing you to use push notifications directly from AFJ.
The Push Notifications plugin package provides a way for you to register your APNs and Firebase push notification token at an agent, allowing you to use push notifications directly from Credo.

:::note

Expand Down
4 changes: 2 additions & 2 deletions guides/extensions/react-hooks.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# React Hooks

The React Hooks package exposes useful React hooks that allow you to easily interact with AFJ from a React client application.
The React Hooks package exposes useful React hooks that allow you to easily interact with Credo from a React client application.

These hooks provide a simple way to query agent data in a client application, allowing you to focus on the user interface.

Expand Down Expand Up @@ -32,7 +32,7 @@ yarn add @aries-framework/react-hooks@^0.5

## Usage

This package exposes useful React hooks that allow you to easily interact with AFJ.
This package exposes useful React hooks that allow you to easily interact with Credo.

Everything exported from Hooks:

Expand Down
4 changes: 2 additions & 2 deletions guides/extensions/redux-store.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Redux Store

The Redux Store is an implementation of state management that can be used to build React & React Native SSI clients using AFJ.
The Redux Store is an implementation of state management that can be used to build React & React Native SSI clients using Credo.

The Redux Store allows you to integrate state management for the most important parts of using AFJ in a client application (mediation, connections, credentials and proofs), allowing you to sync UI state with the state of the agent as it interacts with other agents through the framework.
The Redux Store allows you to integrate state management for the most important parts of using Credo in a client application (mediation, connections, credentials and proofs), allowing you to sync UI state with the state of the agent as it interacts with other agents through the framework.

:::note

Expand Down
6 changes: 3 additions & 3 deletions guides/extensions/rest.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# REST API

The Credo REST API provides simple RESTful endpoints for AFJ methods, to allow you stand up an agent for communication over the internet instantly. You simply provide your agent configuration. The REST endpoints allow you to interact with your agent over HTTP and WebSockets.
The Credo REST API provides simple RESTful endpoints for Credo methods, to allow you stand up an agent for communication over the internet instantly. You simply provide your agent configuration. The REST endpoints allow you to interact with your agent over HTTP and WebSockets.

The AFJ REST API is the most convenient way for self-sovereign identity (SSI) developers to interact with SSI agents.
The Credo REST API is the most convenient way for self-sovereign identity (SSI) developers to interact with SSI agents.

-**Endpoints** to create connections, issue credentials, and request proofs.
- 💻 **CLI** that makes it super easy to start an instance of the REST API.
Expand Down Expand Up @@ -32,7 +32,7 @@ After installing and confirming that Libindy is installed, simply run:

```sh
npx -p @aries-framework/rest afj-rest start \
--label "AFJ Rest" \
--label "Credo Rest" \
--wallet-id "walletId" \
--wallet-key "walletKey" \
--endpoint http://localhost:5000 \
Expand Down
6 changes: 3 additions & 3 deletions guides/getting-started/set-up/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ This guide assumes you have followed the [Prerequisites](./prerequisites), and y

Credo is still in **active development**, and as such some APIs are still experimental. **When using any experimental features, make sure to use an exact version of Credo** (`0.4.0`) instead of a range (`^0.4.0`), to prevent accidental breaking changes. If you're not leveraging any experimental features, you can use a range (`^0.4.0`) to get the latest bugfixes and features.

For AFJ `0.4.x`, **the following features are experimental**:
For Credo `0.4.x`, **the following features are experimental**:

- Implementing your own `AnonCredsRegistry` and AnonCreds service implementation.
- Using the shared component libraries from `@aries-framework/aries-askar`, `@aries-framework/indy-vdr` and `@aries-framework/anoncreds-rs`
Expand Down Expand Up @@ -67,7 +67,7 @@ of your application.
+ import 'react-native-get-random-values'
```

In addition you need add support for resolving modules with the `.cjs` extension, as this is used by some of AFJ's dependencies and not automatically supported by React Native.
In addition you need add support for resolving modules with the `.cjs` extension, as this is used by some of Credo's dependencies and not automatically supported by React Native.

```js title="metro.config.js" showLineNumbers
module.exports = {
Expand Down Expand Up @@ -130,7 +130,7 @@ enough for your specific use cases. Please refer to the

### Adding a wallet and storage implementation

After creating the `Agent` instance, we need to provide the agent with a wallet and storage implementation. AFJ provides a few implementations out of the box, but you can also implement your own. Currently the following Wallet and Storage implementations are supported out of the box. Follow the specific guides to set up the wallet and storage implementation of your choice.
After creating the `Agent` instance, we need to provide the agent with a wallet and storage implementation. Credo provides a few implementations out of the box, but you can also implement your own. Currently the following Wallet and Storage implementations are supported out of the box. Follow the specific guides to set up the wallet and storage implementation of your choice.

- [Aries Askar](./set-up/aries-askar) - Recommended.
- [Indy SDK](./set-up/indy-sdk) - Legacy. Will be deprecated in the future.
Expand Down
4 changes: 2 additions & 2 deletions guides/tutorials/agent-config/logging.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ The `setLogger` and `setDefaultLogger` methods have only been implemented in the

:::

The easiest way to do this from AFJ is through the `indy` property of `agentDependencies`.
The easiest way to do this from Credo is through the `indy` property of `agentDependencies`.

```ts
import { agentDependencies } from '@aries-framework/node'
Expand All @@ -84,4 +84,4 @@ agentDependencies.indy.setLogger((level, target, message, modulePath, file, line
> WARNING: You can only set the logger once. Call indy_set_default_logger, indy_set_logger, not both. Once it's been set, libindy won't let you change it.
You can also set the environment variable `RUST_LOG` to log at specified log levels.
See https://crates.io/crates/env_logger for more information.
See <https://crates.io/crates/env_logger> for more information.
4 changes: 2 additions & 2 deletions guides/tutorials/indy-sdk-postgres-database-nodejs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

By default the Indy SDK will use an SQLite database for storage. In mobile environments this is sufficient and allows us to keep storage local to the device, but in server environments we oftentimes want a more scalable storage solution. By leveraging the PostgreSQL plugin for Indy SDK we can use PostgreSQL as a storage solution instead of SQLite.

This document describes the installation process of the Postgres plugin for IndySDK and how you need to configure AFJ to use it.
This document describes the installation process of the Postgres plugin for IndySDK and how you need to configure Credo to use it.

## Installation of the Postgres Plugin

Expand All @@ -12,7 +12,7 @@ For installation of the Postgres plugin, please refer to the platform specific g
- [Linux](./linux.md)
- [Windows](./windows.md)

## Using the Postgres Plugin in AFJ
## Using the Postgres Plugin in Credo

```typescript showLineNumbers set-up-indy-sdk-postgres.ts section-1

Expand Down
14 changes: 7 additions & 7 deletions guides/updating/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import DocCardList from '@theme/DocCardList';

# Updating AFJ
# Updating Credo

This section will cover everything you need to know about updating Credo to a newer version.

Expand All @@ -10,20 +10,20 @@ This section will cover everything you need to know about updating Credo to a ne

Credo follows [semantic versioning](https://semver.org/). This means that major version changes (**1**.0.0) are considered breaking changes. When features are added this is a minor version change (0.**1**.0). For bug fixes the patch version change is used (0.0.**1**).

While AFJ is still in pre-1.0.0 version, the version change types are shifted to the right. This means a major version change is now a minor change (0.**1**.0) and a minor change is now a patch change (0.0.**1**). This is done to keep the version below 1.0.0, indicating the framework is still in early development and users can expect more breaking changes that when the version has already reached 1.0.0.
While Credo is still in pre-1.0.0 version, the version change types are shifted to the right. This means a major version change is now a minor change (0.**1**.0) and a minor change is now a patch change (0.0.**1**). This is done to keep the version below 1.0.0, indicating the framework is still in early development and users can expect more breaking changes that when the version has already reached 1.0.0.

This means if the second number in the version (0.**1**.0) changes, you need to be careful with updating and always consult this page for update instructions. If only the third number changes (0.0.**1**), you can update without any issues.

## Types of breaking changes

Updates to AFJ bring new features and improvements to the framework. To better adapt the framework to new features we sometimes make breaking changes that will improve how AFJ works. There's two parts to updates with breaking changes:
Updates to Credo bring new features and improvements to the framework. To better adapt the framework to new features we sometimes make breaking changes that will improve how Credo works. There's two parts to updates with breaking changes:

1. Breaking code changes
2. Breaking storage changes

### Breaking Code Changes

Breaking changes to code means changes to how you interact with AFJ. This includes methods being renamed, moved to another module or extended to better integrate with new features. We'll try to cover all breaking changes in migration guides, so you know exactly what is needed to update to a new version and keep the same functionality.
Breaking changes to code means changes to how you interact with Credo. This includes methods being renamed, moved to another module or extended to better integrate with new features. We'll try to cover all breaking changes in migration guides, so you know exactly what is needed to update to a new version and keep the same functionality.

:::info

Expand All @@ -39,7 +39,7 @@ Breaking changes to storage are a bit more complex to deal with. While breaking

Currently the following migration guides are available:

- [Migrating from AFJ 0.1.0 to 0.2.x](./versions/0.1-to-0.2.md)
- [Migrating from AFJ 0.2.x to 0.3.x](./versions/0.2-to-0.3.md)
- [Migrating from AFJ 0.3.x to 0.4.x](./versions/0.3-to-0.4.md)
- [Migrating from Credo 0.1.0 to 0.2.x](./versions/0.1-to-0.2.md)
- [Migrating from Credo 0.2.x to 0.3.x](./versions/0.2-to-0.3.md)
- [Migrating from Credo 0.3.x to 0.4.x](./versions/0.3-to-0.4.md)
- [Migrating from an Indy SDK Wallet to Aries Askar](./update-indy-sdk-to-askar.md)
2 changes: 1 addition & 1 deletion guides/updating/update-assistant.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Update Assistant

The Update Assistant helps you update the storage objects from AFJ to newer versions. This documents describes the different ways you can leverage the Update Assistant from fully managed to more manual approaches.
The Update Assistant helps you update the storage objects from Credo to newer versions. This documents describes the different ways you can leverage the Update Assistant from fully managed to more manual approaches.

- [Update Strategies](#update-strategies)
- [Manually instantiating the update assistant on agent startup](#manually-instantiating-the-update-assistant-on-agent-startup)
Expand Down
6 changes: 3 additions & 3 deletions guides/updating/update-indy-sdk-to-askar.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Postgres is not supported. If you are using postgres with Indy SDK and need to u

:::caution

The migration script is supported to run on 0.3.x before migrating from 0.3.x to 0.4.x. Please refer to [Migrating from AFJ 0.3.x to 0.4.x](./versions/0.3-to-0.4.md) to get to 0.4.x afterwards.
The migration script is supported to run on 0.3.x before migrating from 0.3.x to 0.4.x. Please refer to [Migrating from Credo 0.3.x to 0.4.x](./versions/0.3-to-0.4.md) to get to 0.4.x afterwards.

It is important to note that this script must be ran before you update from 0.3.x to 0.4.x.

Expand Down Expand Up @@ -46,7 +46,7 @@ Aries Askar has a specific way to store keys and every key, defined by the categ

:::caution

This update script does not transform did records. This is fine for something like `did:peer`, but will cause issues with `indy` and `sov` DIDs. For more information, please check out the [Migrating from AFJ 0.3.x to 0.4.x](./versions/0.3-to-0.4.md#removal-of-publicdidseed-and-publicdid)
This update script does not transform did records. This is fine for something like `did:peer`, but will cause issues with `indy` and `sov` DIDs. For more information, please check out the [Migrating from Credo 0.3.x to 0.4.x](./versions/0.3-to-0.4.md#removal-of-publicdidseed-and-publicdid)

:::

Expand Down Expand Up @@ -84,7 +84,7 @@ Updating does not require a lot of code, but must be done with caution.

It is very important to note that the migration script only has to be run once. If it runs for a second time, it will error saying that the database is already migrated. Also, when the migration is finished, it is common practice to store this state in your persistent app storage. This script does not provide a way to detect if an update has happened, so storing this value will prevent the script from running every time. For more information regarding this topic, please check out [Update Assistant](./update-assistant.md#storing-the-agent-storage-version-outside-of-the-agent-storage).

### add the required dependencies:
### add the required dependencies

```sh
yarn add @hyperledger/aries-askar-react-native @aries-framework/indy-sdk-to-askar-migration react-native-fs
Expand Down
Loading

0 comments on commit 7b620b3

Please sign in to comment.