Skip to content
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
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ Available regions:
- Frankfurt
- Mumbai
- Singapore
- Ohio
- Bahrain
- Osaka
- Ohio [Contact us](mailto:support@settlemint.com)
- Bahrain [Contact us](mailto:support@settlemint.com)
- Osaka [Contact us](mailto:support@settlemint.com)

## Google Cloud

Expand All @@ -24,18 +24,18 @@ Available regions:
- Brussels
- Mumbai
- Singapore
- Oregon
- Tokyo
- Oregon [Contact us](mailto:support@settlemint.com)

## Microsoft Azure

Available regions:

- Amsterdam
- Singapore
- California
- Dubai
- Tokyo
- Amsterdam [Contact us](mailto:support@settlemint.com)
- Singapore [Contact us](mailto:support@settlemint.com)
- California [Contact us](mailto:support@settlemint.com)

:::info Note

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Not all applications are equal. Some are for experimentation, some are pilots, w

We offer you the flexibility to deploy your services in the cloud of your choice, and easily build cross-cloud provider and cross-geographical region networks. All leading cloud providers are supported and we are continously working on adding support for more regions.

[Discover all supported cloud providers and available regions](./0_supported-cloud-providers.md)
[Discover all supported cloud providers and available regions](0_supported-cloud-providers.md)

## Resource pack

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ This guide walks you through installing the SettleMint Platform using Helm, prov
## Prerequisites

Before starting the installation, ensure you have:
- Completed all [prerequisite services](/launch-platform/self-hosted/installation-guide/prerequisites/overview) setup

- Completed all [prerequisite services](prerequisites/overview.md) setup
- Collected all required information from the prerequisite guides
- Met all infrastructure requirements
- Helm 3.x installed
Expand Down Expand Up @@ -234,18 +235,21 @@ Once all pods are running, access the platform at `https://<your-domain>`.
If you encounter issues during installation:

1. Debug the installation:

```bash
helm upgrade --install --debug --dry-run settlemint oci://registry.settlemint.com/settlemint-platform/settlemint \
--namespace settlemint \
--values values.yaml
```

2. Check pod logs:

```bash
kubectl logs -n settlemint <pod-name>
```

3. Generate a support bundle:

```bash
# Install support bundle plugin
curl https://krew.sh/support-bundle | bash
Expand All @@ -264,4 +268,4 @@ To remove the platform:
helm delete settlemint --namespace settlemint
```

**Note:** This will not delete persistent volumes or other resources outside of Helm's control. You may need to clean these up manually.
**Note:** This will not delete persistent volumes or other resources outside of Helm's control. You may need to clean these up manually.
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ sidebar_position: 9
This Terraform-based installation is designed for quick setup and testing environments only. For production deployments, we strongly recommend following the manual installation process to properly configure and secure each component according to your organization's requirements.

**Key limitations of Terraform setup:**

- Components run locally in the cluster without High Availability
- Basic security configurations
- Limited customization options
- Not suitable for production workloads
:::
:::

For a quick deployment of the SettleMint Platform and all its prerequisites on Google Cloud Platform (GCP), we provide a Terraform-based installation method. This is optional - you can skip this if you prefer to set up the prerequisites manually.

Expand All @@ -32,19 +33,23 @@ brew install hashicorp/tap/terraform

1. Create a [Google Cloud Platform account](https://console.cloud.google.com/freetrial/) if you don't have one
2. Install the gcloud CLI:

```sh
brew cask install google-cloud-sdk
gcloud auth application-default login
```

3. Enable required APIs for your project:

- Container API: `https://console.developers.google.com/apis/api/container.googleapis.com/overview?project=<project_id>`
- Cloud KMS API: `https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview?project=<project_id>`

4. Configure IAM permissions. Your GCP user needs either:

- `Owner` role (recommended for quick setup)

OR all of these roles:

- `Editor`
- `Cloud KMS Admin`
- `Project IAM Admin`
Expand All @@ -54,11 +59,13 @@ gcloud auth application-default login
## Installation Steps

1. Clone the installation repository:

```sh
git clone git@github.com:settlemint/tutorial-btp-on-gcp.git
```

2. Set required environment variables:

```sh
# DNS zone (subdomain) for platform access (e.g., btp.settlemint.com)
export TF_VAR_gcp_dns_zone='YOUR_DNS_ZONE'
Expand All @@ -82,26 +89,31 @@ export TF_VAR_btp_version='BTP_VERSION'
### DNS Zone Setup

1. Navigate to the DNS zone setup directory:

```sh
cd tutorial-btp-on-gcp/00_dns_zone
```

2. Create the DNS zone:

```sh
terraform init
terraform apply
```

3. Configure your domain registrar with the nameservers from the Terraform output. For example, in Cloudflare:

- Add NS records for your subdomain (e.g., btp.settlemint.com)
- Point to the Google nameservers (ns-cloud-aX.googledomains.com)

4. Verify DNS delegation:

```sh
dig NS btp.settlemint.com
```

Expected output should show Google nameservers:

```
;; ANSWER SECTION:
btp.settlemint.com. 300 IN NS ns-cloud-a4.googledomains.com.
Expand All @@ -113,17 +125,20 @@ btp.settlemint.com. 300 IN NS ns-cloud-a3.googledomains.com.
### Platform Infrastructure Setup

1. Navigate to the infrastructure directory:

```sh
cd ../01_infrastructure
```

2. Deploy the infrastructure:

```sh
terraform init
terraform apply
```

This will create:

- GKE cluster
- All required prerequisites
- The SettleMint Platform installation
Expand All @@ -144,7 +159,7 @@ After the Terraform deployment completes:

1. Access the platform at `https://btp.<your-domain>`
2. Follow the initial setup wizard
3. Review the [platform documentation](/docs/introduction) for next steps
3. Review the [platform documentation](../introduction.md) for next steps

## Troubleshooting

Expand All @@ -155,4 +170,4 @@ If you encounter issues:
3. Check the Terraform logs for specific error messages
4. Contact [support@settlemint.com](mailto:support@settlemint.com) if you need assistance

**Note:** The Terraform installation is designed for demonstration and testing. For production deployments, we recommend following the manual installation process to configure each component according to your specific requirements.
**Note:** The Terraform installation is designed for demonstration and testing. For production deployments, we recommend following the manual installation process to configure each component according to your specific requirements.
2 changes: 1 addition & 1 deletion docs/using-platform/10_backend-as-a-service.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ If you need to execute tasks based on changes to your database you can leverage
**Access to your database** can be handled all the way to the row level by using the authentication and authorisation options available in Hasura.
[Learn more here.](https://hasura.io/docs/latest/graphql/core/auth/index.html)

This is of course on top of the [API keys](19_api-keys.md) in the platform you can use to close of access to the entire API.
This is of course on top of the [application access tokens](20_application-access-tokens.md) and [personal access tokens](21_personal-access-tokens.md) in the platform you can use to close off access to the entire API.

## Backups

Expand Down
2 changes: 1 addition & 1 deletion docs/using-platform/21_personal-access-tokens.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Personal access tokens

Personal access tokens (or [Application access tokens](19_application-access-tokens.md)) let you connect your SettleMint services with other apps securely. They represent an individual user, and have the same rights as the user's role in the organization (admin or user). They can be used to connect to all services that the user has access to.
Personal access tokens (or [Application access tokens](20_application-access-tokens.md)) let you connect your SettleMint services with other apps securely. They represent an individual user, and have the same rights as the user's role in the organization (admin or user). They can be used to connect to all services that the user has access to.

## Create a personal access token

Expand Down
2 changes: 1 addition & 1 deletion docs/using-platform/22_deployment-plans.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Not all applications are equal. Some are for experimentation, some are pilots, w

We offer you the flexibility to deploy your services in the cloud of your choice, and easily build cross-cloud provider and cross-geographical region networks. All leading cloud providers are supported and we are continously working on adding support for more regions.

[Discover all supported cloud providers and available regions](./0_supported-cloud-providers.md)
[Discover all supported cloud providers and available regions](../launch-platform/managed-cloud-deployment/0_supported-cloud-providers.md)

## Resource pack

Expand Down
34 changes: 20 additions & 14 deletions docs/using-platform/9_integration-studio.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ Drag and drop a **function node**. This is the node that will query the blockcha
`rpcEndpoint` is the RPC url of your Polygon Mumbai Node.
Under the **Connect tab** of your Polygon Mumbai node, you will find its RPC url.

`apiKey` - You will need an API key for your node. If you do not have one, you can easily [create an API key](19_api-keys.md) first.
`accessToken` - You will need an access token for your application. If you do not have one, you can easily [create an access token](20_application-access-tokens.md) first.

Enter the following snippet in the Message tab.

Expand All @@ -70,15 +70,17 @@ Enter the following snippet in the Message tab.
// Configuration //
///////////////////////////////////////////////////////////

const rpcEndpoint = 'https://YOUR_NODE_RPC_ENDPOINT.settlemint.com';
const apiKey = 'bpaas-YOUR_NODE_API_KEY_HERE';
const rpcEndpoint = "https://YOUR_NODE_RPC_ENDPOINT.settlemint.com";
const accessToken = "YOUR_APPLICATION_ACCESS_TOKEN_HERE";

///////////////////////////////////////////////////////////
// Logic //
///////////////////////////////////////////////////////////

const ethers = global.get('ethers');
const provider = new ethers.providers.JsonRpcProvider(`${rpcEndpoint}/${apiKey}`);
const ethers = global.get("ethers");
const provider = new ethers.providers.JsonRpcProvider(
`${rpcEndpoint}/${accessToken}`
);
msg.payload = await provider.getBlockNumber();

return msg;
Expand All @@ -93,15 +95,19 @@ return msg;
ethers and some ipfs libraries are already available by default and can be used like this:

```javascript
const ethers = global.get('ethers');
const provider = new ethers.providers.JsonRpcProvider(`${rpcEndpoint}/${apiKey}`);

const ipfsHttpClient = global.get('ipfsHttpClient');
const client = ipfsHttpClient.create(`${ipfsEndpoint}/${apiKey}/api/v0`);

const uint8arrays = global.get('uint8arrays');
const itAll = global.get('itAll');
const data = uint8arrays.toString(uint8arrays.concat(await itAll(client.cat(cid))));
const ethers = global.get("ethers");
const provider = new ethers.providers.JsonRpcProvider(
`${rpcEndpoint}/${accessToken}`
);

const ipfsHttpClient = global.get("ipfsHttpClient");
const client = ipfsHttpClient.create(`${ipfsEndpoint}/${accessToken}/api/v0`);

const uint8arrays = global.get("uint8arrays");
const itAll = global.get("itAll");
const data = uint8arrays.toString(
uint8arrays.concat(await itAll(client.cat(cid)))
);
```

if the library you need isn't available by default you will need to import it in the setup tab.
Expand Down
4 changes: 2 additions & 2 deletions docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ const config: Config = {
"The Blockchain Transformation Platform for developers to rapidly build blockchain applications",
url: "https://console.settlemint.com",
baseUrl: "/documentation/",
onBrokenLinks: "warn",
onBrokenMarkdownLinks: "warn",
onBrokenLinks: "throw",
onBrokenMarkdownLinks: "throw",
trailingSlash: true,
favicon: "img/favicon.ico",
organizationName: "settlemint", // Usually your GitHub org/user name.
Expand Down