Altinity / Altinity/altinity-sql-browser
[sup] ACM cookie-auth session: URL cluster/node context + temp-credential lifecycle
Open
Nobody has claimed this yet.
enhancement
sup
- Dominant language
- TypeScript
- Stars
- 8
- Forks
- 2
- Avg merge
- 1h 34m
- Merged PRs (30d)
- 6
Description
Part of #352. Heavily simplified by the cookie-auth model (was: #user login + pasted ACM key).
A dedicated ACM-mode ChCtx/session — no login form, no token, no key persistence.
Scope
- Read context from URL:
clusterandnodequery params (supplied by the ACM console link). No cluster URL→id resolution. - Cookie auth: all
/apicallscredentials:'same-origin', no auth header. A 401 = ACM session lost → redirect to ACM login (standard), not our concern to refresh. - Identity:
GET /api/account→ engineer email, used as CHuser=forquery_logattribution. Model engineer-identity (from/account) separately from CH transport login (may be a returnedlogin, else the email) and never assume they're the same. - Temp CH credential lifecycle: mint via
GET /api/cluster/{id}/support/credentials; read TTL from the response (don't hardcode); keep alive via/support/refreshor re-mint; single-flight so concurrent schema/dashboard requests don't mint in parallel. Handle both documented shapes ({password,ttl}/ bare string /{login,password}).
Removed vs. original
— there is no key in JS anymore.#usersentinel, ACM key in a password field, Chrome-password-store, no-localStorage/share-link/export rules for the key
Acceptance
- Loads cluster/node from URL;
currentUser()is the engineer email. - No credential stored in JS; cookie-only; 401 → ACM login redirect.
- Temp creds mint + refresh (single-flight), TTL from response, all response shapes handled.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the existing ChCtx/session flow and the ACM URL context, then inspect the /api/account and /api/cluster/{id}/support/credentials entry points. Verify the cookie-only requests, ACM redirect on 401, engineer-email attribution, and single-flight credential minting with every documented response shape; done means all listed acceptance checks pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- sql, typescript
- Domain
- api, authentication, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100