Skip to content
This repository was archived by the owner on Oct 31, 2026. It is now read-only.

A console on the base: sign-in, stacks, and the hub - #23

Merged
nicu-chiciuc merged 2 commits into
mainfrom
base-console
Oct 30, 2026
Merged

nicu-chiciuc merged 2 commits into
mainfrom
base-console

Conversation

@nicu-chiciuc

@nicu-chiciuc nicu-chiciuc commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

What

A small site on the base deployment, on TanStack Start, Tailwind, and convex-hosting.

  • Sign-in: Convex Auth password accounts. There is no sign-up. The internal function authAdmin:createOrUpdatePasswordAccount creates an account with the email and password you choose.
  • Stacks: every stack of the team, then a stack's stages, its last run, its output, and its resources. The stack is the center, and the site makes no GitHub call.
  • Hub: the apps of the hub and their clients.

The state comes through reader.repository, the redacted read that Samebase uses, so no secret reaches the browser. Each read needs a session, and a repository read token does not count as one.

convex/broker.ts now defines the broker, so that the admin functions do not import the site build.

Tested

On a local backend, with the real build uploaded and rendered inside Convex, and with the redacted rows of all seven repositories:

  • Sign-in, a full reload, and sign-out work in a browser. A protected page redirects to sign-in.
  • A wrong password and an unknown email give the same answer.
  • The hub routes still answer: discovery, /authorize, /token, /userinfo, and the connector callbacks.
  • A scan of the data found 63 redacted values and no plain secret in a secret-named field.

Not tested: the custom domain auth.samebase.com.

What a merge does

A merge deploys the hub with this site. The first deploy creates AUTH_PRIVATE_KEY and AUTH_JWKS on the deployment. Then / shows the sign-in page, and it needs one account from the dashboard.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

nicu-chiciuc and others added 2 commits October 30, 2026 14:56
A TanStack Start site on convex-hosting, served by the base deployment next to
the hub. Accounts are Convex Auth password accounts with no sign-up: an internal
function creates them. The pages read the Alchemy state through the redacted
reader, with the stack as the center and no GitHub call.

The broker moves to convex/broker.ts, so that the admin functions do not import
the build of the site.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This deployment is also the sign-in hub of the team. From one Codex pass and a
measured login flood:

- The sign-in page is a file of the build. A request without a session cookie
  gets that file or a redirect, and it never reaches a refresh or a render.
- Other methods answer 405 before the session code.
- Every failed sign-in gets the same answer. The rate limit told a caller that
  an email has an account.
- A read checks that the account still exists, so deleting a row of users ends
  its sessions at once.
- Pages and files refuse framing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nicu-chiciuc
nicu-chiciuc merged commit 97e0d5b into main Oct 30, 2026
1 check passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant