Skip to content

Trust

Security

Concrete controls currently implemented in this repository.

Authentication

  • Email/password accounts require email verification before login.
  • Passwords and one-time 2FA codes are hashed with bcrypt.
  • Optional 2FA is supported with emailed 6-digit OTP codes.
  • Google and GitHub OAuth are available when provider env vars are configured.
  • Login attempts are rate-limited and failed attempts are tracked.

Payments

  • Public invoice payments use Stripe Checkout sessions.
  • Payouts run through Stripe Connect connected accounts.
  • Platform fees are applied as Stripe application fees when configured by plan.
  • Stripe webhooks validate the signature using `STRIPE_WEBHOOK_SECRET`.
  • Webhook events are deduplicated by unique Stripe event ID before processing.

Data handling

  • Application data is stored in Postgres.
  • Sensitive credentials are loaded from environment variables.
  • Workspace SMTP passwords are encrypted at rest (AES-256-GCM) when saved.

Operational safety

  • Webhook processing is idempotent via event-level deduplication.
  • Refund creation uses Stripe idempotency keys to avoid duplicate refunds.
  • Basic abuse controls include login throttling and invoice creation safety limits.

Contact

Security questions and reports: support@lateless.org.