Altinity / Altinity/altinity-sql-browser

[sup] ACM cookie-auth session: URL cluster/node context + temp-credential lifecycle

Open
#354 0 comments 0 reactions 0 assignees View on GitHub

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: cluster and node query params (supplied by the ACM console link). No cluster URL→id resolution.
  • Cookie auth: all /api calls credentials:'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 CH user= for query_log attribution. Model engineer-identity (from /account) separately from CH transport login (may be a returned login, 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/refresh or 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

  • #user sentinel, ACM key in a password field, Chrome-password-store, no-localStorage/share-link/export rules for the key — there is no key in JS anymore.

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.