README: orgs, invites, password reset, receipts, SMTP env, renewal (part of #80) #10

Merged
Cordy merged 1 commit from docs into main 2026-07-30 15:11:33 +00:00
Owner

Part of Cairn #80. The README's endpoint table, config, and data model predated everything that shipped for the customer area.

Added to the endpoints table (paths taken verbatim from the mux.HandleFunc registrations, not guessed): PATCH /v1/licenses/{id} (label), POST /v1/account/password, POST /v1/password-reset + /confirm, the seven org endpoints (GET /v1/org, POST /v1/org/name, POST /v1/org/invites, DELETE /v1/org/invites/{email}, POST /v1/invites/accept, POST /v1/org/members/{email}/role, DELETE /v1/org/members/{email}), and the two receipts endpoints.

Config gained PADDLE_API_KEY (receipts) and the full SMTP_* set (SMTP_HOST/PORT/USER/PASS/FROM, with SMTP_PASSWORD/MAIL_FROM aliases), with the degrade-quietly behaviour when SMTP_HOST is unset — matching email.go.

The webhook row now notes that a subscription renewal refreshes the same license id rather than issuing a duplicate, and the data model paragraph documents the orgs and invites maps plus the per-license label/orgId.

Verified every path and env var against the source in a read-only inspection run before writing — no invented endpoints.

Part of Cairn #80. The README's endpoint table, config, and data model predated everything that shipped for the customer area. Added to the **endpoints** table (paths taken verbatim from the `mux.HandleFunc` registrations, not guessed): `PATCH /v1/licenses/{id}` (label), `POST /v1/account/password`, `POST /v1/password-reset` + `/confirm`, the seven org endpoints (`GET /v1/org`, `POST /v1/org/name`, `POST /v1/org/invites`, `DELETE /v1/org/invites/{email}`, `POST /v1/invites/accept`, `POST /v1/org/members/{email}/role`, `DELETE /v1/org/members/{email}`), and the two receipts endpoints. **Config** gained `PADDLE_API_KEY` (receipts) and the full `SMTP_*` set (`SMTP_HOST/PORT/USER/PASS/FROM`, with `SMTP_PASSWORD`/`MAIL_FROM` aliases), with the degrade-quietly behaviour when `SMTP_HOST` is unset — matching `email.go`. The **webhook** row now notes that a subscription renewal refreshes the same license id rather than issuing a duplicate, and the **data model** paragraph documents the `orgs` and `invites` maps plus the per-license `label`/`orgId`. Verified every path and env var against the source in a read-only inspection run before writing — no invented endpoints.
docs: README covers orgs, invites, password reset, receipts, SMTP env, renewal (#80)
All checks were successful
ci / test-and-build (pull_request) Successful in 11s
7bb716266b
Cordy merged commit 2f05849ac6 into main 2026-07-30 15:11:33 +00:00
Sign in to join this conversation.
No reviewers
No labels
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: Cordy/cairn-license-server#10
No description provided.