You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Add organization level MFA and ReCAPTCHA settings [#861](https://github.com/stellar/stellar-disbursement-platform-backend/pull/861)
17
+
- Add trustlines for distribution account when provisioning tenant [#891](https://github.com/stellar/stellar-disbursement-platform-backend/pull/891)
18
+
- Add support for contract account disbursements [#922](https://github.com/stellar/stellar-disbursement-platform-backend/pull/922)
19
+
- Add contract account support for direct payments [#924](https://github.com/stellar/stellar-disbursement-platform-backend/pull/924)
20
+
- Add support for contract addresses for PATCH receiver [#925](https://github.com/stellar/stellar-disbursement-platform-backend/pull/925)
21
+
- Mark tx failures due to archived entries as error [#926](https://github.com/stellar/stellar-disbursement-platform-backend/pull/926)
22
+
23
+
### Changed
24
+
- Decommissioned Event Broker Kafka support in favor of Scheduler for background jobs. [#914](https://github.com/stellar/stellar-disbursement-platform-backend/pull/914)
25
+
- Allow configuring `resources` limits and requests for services in the Helm charts [#904](https://github.com/stellar/stellar-disbursement-platform-backend/pull/904)
26
+
- Enable short linking by default [#916](https://github.com/stellar/stellar-disbursement-platform-backend/pull/916)
27
+
- Make POST /wallets and PATCH /wallets permissions consistent [#909](https://github.com/stellar/stellar-disbursement-platform-backend/pull/909)
Copy file name to clipboardExpand all lines: README.md
+17-55Lines changed: 17 additions & 55 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -65,6 +65,11 @@ Security is a critical aspect of the SDP. The measures outlined in this document
65
65
66
66
Google's reCAPTCHA has been integrated into the SDP to prevent automated attacks and ensure that interactions are performed by humans, not bots.
67
67
68
+
69
+
ReCAPTCHA can be configured at two levels:
70
+
1.**Environment level (default)**: Set the `DISABLE_RECAPTCHA` environment variable to `true` to disable for all tenants
71
+
2.**Organization level**: Each tenant can override the environment default through the organization settings (via API or UI)
72
+
68
73
The SDP supports both reCAPTCHA v2 ("I'm not a robot") and reCAPTCHA v3 (invisible, score-based) implementations:
69
74
70
75
-**reCAPTCHA v2**: Traditional checkbox-based verification
@@ -80,15 +85,21 @@ The SDP supports both reCAPTCHA v2 ("I'm not a robot") and reCAPTCHA v3 (invisib
80
85
81
86
ReCAPTCHA is enabled by default and can be disabled in the development environment by setting the `DISABLE_RECAPTCHA` environment variable to `true`.
82
87
83
-
**Note:** Disabling reCAPTCHA is supported for pubnet environments but this might reduce security!.
88
+
The organization-level setting takes precedence over the environment default when explicitly set. If not set at the organization level, the environment default is used.
89
+
90
+
**Note:** Disabling reCAPTCHA is supported for pubnet environments but this might reduce security!
84
91
85
92
### Enforcement of Multi-Factor Authentication
86
93
87
94
Multi-Factor Authentication (MFA) provides an additional layer of security to user accounts. It is enforced by default on the SDP and it relies on OTPs sent to the account's email.
88
95
89
-
MFA is enabled by default and can be disabled in the development environment by setting the `DISABLE_MFA` environment variable to `true`.
96
+
MFA can be configured at two levels:
97
+
1.**Environment level (default)**: Set the `DISABLE_MFA` environment variable to `true` to disable for all tenants
98
+
2.**Organization level**: Each tenant can override the environment default through the organization settings (via API or UI)
90
99
91
-
**Note:** Disabling MFA is not supported for production environments due to security risks.
100
+
The organization-level setting takes precedence over the environment default when explicitly set. If not set at the organization level, the environment default is used.
101
+
102
+
**Note:** Disabling MFA is not recommended for production environments due to security risks.
92
103
93
104
### Best Practices for Wallet Management
94
105
@@ -279,56 +290,8 @@ The tables below are shared by the transaction submission service and core servi
279
290
280
291
Note that the `submitter_transactions` table is used by the TSS and will be managed by the service when moved to its own project.
281
292
282
-
### Event Brokers & Background jobs
283
-
284
-
The SDP can use either an Event Broker or Background jobs to handle asynchronous tasks. The choice depends on the requirements of the organization using the SDP.
285
-
Currently, the SDP only supports Kafka as an Event Broker even though it has been designed to support other brokers through the use of interfaces.
286
-
287
-
> [!NOTE]
288
-
> In order to avoid concurrency issues, the SDP only supports one Event Broker or Background Jobs at a time.
289
-
290
-
#### Configuration Options
291
-
292
-
The SDP configuration is controlled by the `EVENT_BROKER_TYPE` environment variable:
293
-
294
-
*`EVENT_BROKER_TYPE=KAFKA` - Uses Kafka for event handling (recommended for multi-tenant deployments)
295
-
*`EVENT_BROKER_TYPE=SCHEDULER` - Uses background jobs (recommended for single-tenant deployments)
296
-
297
-
298
-
#### Kafka
299
-
We recommend Kafka for organizations that require high throughput and low latency. Organizations that plan on hosting multiple tenants on the SDP should consider using Kafka.
300
-
301
-
**1. Topics**
302
-
303
-
*`events.receiver-wallets.new_invitation`: This topic is used to send disbursement invites to recipients. *[Producer: Core, Consumer: Core]*
304
-
*`events.payment.ready_to_pay`: This topic is used to submit payments from the Core to the TSS. *[Producer: Core, Consumer: TSS]*
305
-
*`events.payment.circle_ready_to_pay`: This topic is used to submit Circle payments. *[Producer: Core, Consumer: Core]*
306
-
*`events.payment.payment_completed`: This topic is used to notify the Core that a payment has been completed. *[Producer: TSS, Consumer: Core]*
307
-
308
-
For each of the topics above, there is a dead letter topic that is used to store messages that could not be processed. The dead letter topics are named as follows:
309
-
*`events.receiver-wallets.new_invitation.dlq`
310
-
*`events.payment.ready_to_pay.dlq`
311
-
*`events.payment.circle_ready_to_pay.dlq`
312
-
*`events.payment.payment_completed.dlq`
313
-
314
-
315
-
**2. Configuration**
316
-
317
-
In order to use Kafka, you need to set the following environment variables for SDP and TSS.
318
-
319
-
```sh
320
-
EVENT_BROKER_TYPE: "KAFKA"
321
-
BROKER_URLS: # comma separated list of broker urls
322
-
CONSUMER_GROUP_ID: # consumer group id
323
-
KAFKA_SECURITY_PROTOCOL: # possible values "PLAINTEXT", "SASL_SSL", "SASL_PLAINTEXT" or "SSL"
324
-
KAFKA_SASL_USERNAME: # username for SASL authentication. Required if KAFKA_SECURITY_PROTOCOL is "SASL_SSL" or "SASL_PLAINTEXT"
325
-
KAFKA_SASL_PASSWORD: # password for SASL authentication. Required if KAFKA_SECURITY_PROTOCOL is "SASL_SSL" or "SASL_PLAINTEXT"
326
-
KAFKA_SSL_ACCESS_KEY: # access key (keystore) in PEM format. Required if KAFKA_SECURITY_PROTOCOL is "SSL"
327
-
KAFKA_SSL_ACCESS_CERTIFICATE: # certificate in PEM format that matches the access key. Required if KAFKA_SECURITY_PROTOCOL is "SSL"
328
-
```
329
-
330
-
#### Background Jobs
331
-
We recommend Background Jobs for organizations that require a simpler setup and do not need high throughput or low latency. Organizations that plan on hosting a single tenant on the SDP should consider using Background Jobs.
293
+
### Background jobs
294
+
The SDP uses Background jobs to handle asynchronous tasks.
332
295
333
296
**1. Jobs**
334
297
@@ -342,10 +305,9 @@ We recommend Background Jobs for organizations that require a simpler setup and
342
305
343
306
**2. Configuration**
344
307
345
-
In order to use Background Jobs, we need to set the following environment variable for Core.
308
+
The following environment variables can be used to configure the intervals of the jobs listed above.
346
309
347
310
```sh
348
-
EVENT_BROKER_TYPE: "SCHEDULER"
349
311
SCHEDULER_RECEIVER_INVITATION_JOB_SECONDS: # interval in seconds
350
312
SCHEDULER_PAYMENT_JOB_SECONDS: # interval in seconds
0 commit comments