Fix Stripe Connect capability + mount Gmail token in pod #37

Closed
opened 2026-03-10 04:48:40 +00:00 by forgejo_admin · 0 comments

Lineage

plan-2026-03-08-tryout-prep → Phase 3a-iii → blockers discovered during E2E test

Repo

forgejo_admin/basketball-api

User Story

As a coach signing up via /coach/signup
I want Stripe Connect onboarding to work
So that I can set up direct deposit

As the system
I want Gmail OAuth tokens available in the pod
So that confirmation emails send automatically after Stripe payment

Context

Stripe Connect: create_stripe_connect_account() requests only transfers capability. Stripe requires card_payments alongside transfers unless platform has special approval. Error: "Your platform needs approval for accounts to have requested the transfers capability without the card_payments capability."

Gmail token: The pod doesn't have the Gmail OAuth token file mounted. gmail-oauth-token k8s secret already created with gmail-draneylucas.json. Need volume mount in deployment.yaml at the path settings.gmail_secrets_dir expects.

File Targets

  • src/basketball_api/services/coach_onboarding.py — add card_payments capability to Stripe Connect account creation
  • k8s/deployment.yaml — add volume mount for gmail-oauth-token secret

Acceptance Criteria

  • Stripe Connect account creation succeeds with both transfers and card_payments capabilities
  • Gmail OAuth token available in pod at expected path
  • Confirmation emails send from pod after Stripe webhook

Test Expectations

  • Existing tests pass
  • Run: pytest tests/ -v

Constraints

  • Gmail secrets dir defaults to ~/.secrets/google-oauth — check config.py for the setting
  • Mount path in deployment must match what settings.gmail_secrets_dir resolves to in the container

Checklist

  • PR opened
  • Tests pass
  • No unrelated changes
  • project-westside-basketball
  • Discovered during Phase 3a-iii E2E testing
### Lineage `plan-2026-03-08-tryout-prep` → Phase 3a-iii → blockers discovered during E2E test ### Repo `forgejo_admin/basketball-api` ### User Story As a coach signing up via `/coach/signup` I want Stripe Connect onboarding to work So that I can set up direct deposit As the system I want Gmail OAuth tokens available in the pod So that confirmation emails send automatically after Stripe payment ### Context **Stripe Connect**: `create_stripe_connect_account()` requests only `transfers` capability. Stripe requires `card_payments` alongside `transfers` unless platform has special approval. Error: "Your platform needs approval for accounts to have requested the `transfers` capability without the `card_payments` capability." **Gmail token**: The pod doesn't have the Gmail OAuth token file mounted. `gmail-oauth-token` k8s secret already created with `gmail-draneylucas.json`. Need volume mount in deployment.yaml at the path `settings.gmail_secrets_dir` expects. ### File Targets - `src/basketball_api/services/coach_onboarding.py` — add `card_payments` capability to Stripe Connect account creation - `k8s/deployment.yaml` — add volume mount for gmail-oauth-token secret ### Acceptance Criteria - [ ] Stripe Connect account creation succeeds with both `transfers` and `card_payments` capabilities - [ ] Gmail OAuth token available in pod at expected path - [ ] Confirmation emails send from pod after Stripe webhook ### Test Expectations - [ ] Existing tests pass - Run: `pytest tests/ -v` ### Constraints - Gmail secrets dir defaults to `~/.secrets/google-oauth` — check `config.py` for the setting - Mount path in deployment must match what `settings.gmail_secrets_dir` resolves to in the container ### Checklist - [ ] PR opened - [ ] Tests pass - [ ] No unrelated changes ### Related - `project-westside-basketball` - Discovered during Phase 3a-iii E2E testing
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/basketball-api#37
No description provided.