all systems operationalv0.17.10
stech/

Org invitations

Add a member to your organization by sending them a link. The recipient clicks → previews the invite → accepts → lands inside the org. Works whether they already have a stech account or not.

Inviting #

Invitations live on /settings/members. Owner / admin only.

Click invite member:

  • Rolemember (default) or admin. Owners can also invite as owner; the receiving member becomes a co-owner on accept.
  • Email (optional) — when set, the api sends the invite link to that address via Resend (shares setup with magic-link sign-in). When left blank, you get a shareable link to copy and send out-of-band (Slack DM, etc.). The link is the auth either way.

Pending invitations show below the members table with their role, target email (if any), expiry, and a revoke button.

Lifetime #

  • Expiry — 7 days from creation. Expired invitations stop accepting and auto-hide from the list.
  • Single-use accept — the token is consumed atomically with the membership insert; double-clicking the link can't double-add.
  • Revoke — owner / admin can revoke any pending invite. Revoked links 410 immediately on the next click.

Accepting (the invitee's side) #

The link points at /invite/<token>. The page previews the org name and the role being offered without requiring sign-in, so the recipient can see what they're walking into.

Three caller states, all handled by a single accept button:

  • Already signed in to stech — accept inserts the membership and bounces to /<orgSlug>/agents.
  • Has an account, signed out — accept redirects to /sign-in?next=… with a continuation back to the accept page; sign in (password or magic-link) and the original accept resumes.
  • No account yet — same shape but via /sign-up instead. Account is created, membership is added, you're in.

The accepter's email does not have to match the invite's target email — the link itself is the proof. We may harden this later if a customer asks.

CLI #

stech members covers list / role-change / remove today. CLI invite parity (stech members invite <email>) is on the roadmap; for now, issue invitations from the dashboard.