docs: correct and tighten the README - #135
Merged
Merged
Conversation
State the admin console accurately. The image bundles the dashboard SPA at a pinned release and serves it at /console by default, but the scope section listed "admin portal or dashboard UI" as managed-service-only and the self-hosting notes claimed no admin portal is included, contradicting the Docker quickstart 300 lines below. The console is now listed as included, with the SERVE_ADMIN_DASHBOARD switch, and the non-goals list names the multi-tenant control plane and hosted portal instead, so the two products stay distinct. Fix five factual errors: - The local quickstart verified the server with `curl /health`, which 404s. Only /health/status and /health/version are registered. - The Docker section documented a migrations-only container run. The image entrypoint never reads its arguments and always ends in `exec npm run start`, so that command starts a server instead. Migrations already run on every boot, so the step is unnecessary and is now described as automatic. - The `nightly` tag was advertised as the latest build from main. The publish workflow only triggers on v* tags, where is_default_branch is false, so that tag is never produced. - The typed-client example imported from `seamless-auth-api/...`, which is not published to npm. It now generates types from the committed openapi.json. - OWNER_EMAIL grants admin:write and admin, not a bare admin role. Also state the Node 24 engine rather than "LTS recommended", link the adapters by package name, and correct the product name in the license section. Trim and link out. Docker Quickstart was a second H1, two production sections repeated most of their bullets, and the OAuth provider JSON, lockout JSON, and scoped-role rules were duplicated from docs/. Those become summaries that link to the existing pages, with a table of contents added.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
An accuracy pass over the README, checked against the code rather than read for style.
The console contradiction
The scope section listed "Admin portal or dashboard UI" as managed-service-only, and the self-hosting notes claimed "No admin portal, billing, or managed infrastructure is included." Both contradicted the Docker quickstart 300 lines below, which tells you to sign up at
/console. The image builds the dashboard SPA at a pinned release, andsrc/lib/adminDashboard.tsserves it unlessSERVE_ADMIN_DASHBOARD=false, so it is on by default.The console is now listed as included, with its own subsection covering the switch and the version-pinning model. The non-goals list names the multi-tenant control plane and hosted portal instead, so the self-hostable console and the managed portal read as two different products.
Five factual errors
curl /health404s. Only/health/statusand/health/versionare registered insrc/routes/health.routes.ts. Both Docker sections were already correct; the local quickstart was the outlier, and it is the first command a new user runs.ENTRYPOINTisvalidateEnvs.sh, which never references"$@"and ends inexec npm run start, sodocker run ... npm run migrate:upignores the argument and starts a server. Migrations already run on every boot, so the step is unnecessary; it is now described as automatic.nightlytag is never published.docker-publish.ymltriggers only onv*tag pushes, andnightlyis gated onenable={{is_default_branch}}, which is false for a tag ref. No other workflow publishes images. Removed from the advertised tags.npm view seamless-auth-apireturns 404. The example now generates types from the committedopenapi.jsonand imports them locally.OWNER_EMAILgrantsadmin:writeandadmin, persrc/lib/ownerAdmin.ts, not a bareadminrole.Also: Node 24 stated explicitly (the
enginesfield requires>=24 <25) instead of "LTS recommended", the adapters linked by package name, and the license section corrected from "Seamless Auth Server" to "Seamless Auth API".Structure
# Docker Quickstartwas a second H1. "Notes for self-hosting" and "Production notes" each opened "For production deployments:" and repeated five of seven bullets. The OAuth provider JSON, lockout JSON, and scoped-role rules duplicateddocs/oauth.md,docs/admin-operations.md, anddocs/configuration.md.Those become summaries linking to the existing pages, with a table of contents added. 530 lines to 430.
Verified
All internal links resolve, every env var named exists in
.env.exampleand source, the DB defaults match, the compose override names are real, the dev-only gating of/docsand/openapi.jsonis accurate, the OpenAPI drift-test claim is true, and the security contact matches SECURITY.md. All 14 table-of-contents anchors and the four cross-doc anchors resolve. Theopenapi-typescriptURL returns HTTP 200. The coverage-badge script's required exact line is preserved.No changeset:
docs:commits in this repo do not carry one.Follow-ups not in this PR
docker-publish.ymlneeds apush: branches: [main]trigger. This PR documents current behavior rather than changing it.@seamless-auth/serveris published at 0.0.0 from June 2025 while@seamless-auth/expressis at 0.11.0, so the README routes integrators to the Express adapter. Ifserveris meant to be the recommended path, it needs a real release.