diff --git a/README.md b/README.md index c99e33e6..0b9d8792 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,9 @@ some tokens on the testnet for making the process simpler. 1. `ENABLE_ACCOUNT_TOPUP`: Enable/disable such functionality (`false` by default) 2. `FAUCET_URI`: Faucet service API endpoint (Default: `https://faucet-api.cheqd.network/credit`) 3. `TESTNET_MINIMUM_BALANCE`: Minimum balance on account before it is automatically topped up from the faucet. This value should be expressed as an integer in `CHEQ` tokens, which will then be converted in the background to `ncheq` denomination. Account balance check is carried out on every account creation/login. (Default: 10,000 CHEQ testnet tokens) +4. `FAUCET_API_KEY`: API key for faucet service authentication +5. `FAUCET_ACCESS_CLIENT_ID`: Cloudflare Access client ID for accessing the Testnet Faucet API +6. `FAUCET_ACCESS_CLIENT_SECRET`: Cloudflare Access client secret for accessing the Testnet Faucet API #### Stripe integration diff --git a/docker/Dockerfile b/docker/Dockerfile index f5fe4b82..192698ac 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -84,6 +84,8 @@ ARG ENABLE_ACCOUNT_TOPUP=false ARG FAUCET_URI=https://faucet-api.cheqd.network/credit ARG FAUCET_API_KEY ARG TESTNET_MINIMUM_BALANCE=1000 +ARG FAUCET_ACCESS_CLIENT_ID +ARG FAUCET_ACCESS_CLIENT_SECRET # Stripe ARG STRIPE_ENABLED=false @@ -139,6 +141,8 @@ ENV ENABLE_ACCOUNT_TOPUP=${ENABLE_ACCOUNT_TOPUP} ENV FAUCET_URI=${FAUCET_URI} ENV FAUCET_API_KEY=${FAUCET_API_KEY} ENV TESTNET_MINIMUM_BALANCE=${TESTNET_MINIMUM_BALANCE} +ENV FAUCET_ACCESS_CLIENT_ID=${FAUCET_ACCESS_CLIENT_ID} +ENV FAUCET_ACCESS_CLIENT_SECRET=${FAUCET_ACCESS_CLIENT_SECRET} # Environment variables: Verida connector ENV ENABLE_VERIDA_CONNECTOR=${ENABLE_VERIDA_CONNECTOR} diff --git a/src/helpers/faucet.ts b/src/helpers/faucet.ts index 30776016..9026c775 100644 --- a/src/helpers/faucet.ts +++ b/src/helpers/faucet.ts @@ -1,5 +1,12 @@ import type { ICommonErrorResponse } from '../types/authentication.js'; -import { MINIMAL_DENOM, FAUCET_URI, FAUCET_AMOUNT, FAUCET_API_KEY } from '../types/constants.js'; +import { + MINIMAL_DENOM, + FAUCET_URI, + FAUCET_AMOUNT, + FAUCET_API_KEY, + FAUCET_ACCESS_CLIENT_ID, + FAUCET_ACCESS_CLIENT_SECRET +} from '../types/constants.js'; export class FaucetHelper { // ... @@ -24,6 +31,8 @@ export class FaucetHelper { headers: { 'Content-Type': 'application/json', 'X-API-Key': FAUCET_API_KEY, + 'CF-Access-Client-Id': FAUCET_ACCESS_CLIENT_ID, + 'CF-Access-Client-Secret': FAUCET_ACCESS_CLIENT_SECRET, }, body: JSON.stringify(faucetBody), method: 'POST', diff --git a/src/types/constants.ts b/src/types/constants.ts index 3588b3be..024c89fa 100644 --- a/src/types/constants.ts +++ b/src/types/constants.ts @@ -57,6 +57,8 @@ export const FAUCET_API_KEY = process.env.FAUCET_API_KEY || 'default-api-key'; export const DEFAULT_DENOM_EXPONENT = 9; export const TESTNET_MINIMUM_BALANCE = process.env.TESTNET_MINIMUM_BALANCE || 1000; export const FAUCET_AMOUNT = process.env.FAUCET_AMOUNT || 100000000000000; +export const FAUCET_ACCESS_CLIENT_ID = process.env.FAUCET_ACCESS_CLIENT_ID || ''; +export const FAUCET_ACCESS_CLIENT_SECRET = process.env.FAUCET_ACCESS_CLIENT_SECRET || ''; // Verifiable Credential constants export const VC_CONTEXT = ['https://www.w3.org/2018/credentials/v1'];