Repository navigation
v0.18.0
Minor Changes
-
306e23f:
seamless initsupports full-stack templates (kind: "fullstack"in the template registry), starting with the Next.js App Router starter:seamless init --nextjs,--web=nextjs, or pick it at the web prompt. A full-stack template is the web app and its own backend, so it fills the web layer and the project gets noapi/. The backend question is skipped, and--apibeside it is refused before anything is created.- The local stack runs it as the
webservice: the template's dev container on port 5173, with the source mounted for reload and the auth wiring the api service would have had. One-time codes and sign-in links print indocker compose logs web. - The admin console is not available for full-stack templates yet, since the Next.js adapter cannot host it. Only
--admin=noneapplies, and other values are refused. seamless.config.jsonrecords the web service askind: "fullstack"with noapientry, andseamless checkchecks the web app's/healthinstead of the API.seamless verifysays it is skipping full-stack templates rather than dropping them silently.
- The local stack runs it as the
-
6c226be: The Microsoft preset now signs in with OpenID Connect: it sets
issuerandjwksUrifor the tenant so the auth server verifies the ID token, reads email verification from thexms_edovoptional claim (add it to the app registration's token configuration), and links users imported withseamless migrateunder sourceentra-idby theiroid. The tenant prompt now takes the directory (tenant) id as a GUID only, because ID tokens name the tenant that way. Needs an auth server that supports theissuer,jwksUriandexternalIdSourceprovider fields. -
4711f7d: The Microsoft OAuth preset is now scoped to one tenant.
init --oauthasks for the directory (tenant) id, refusescommon,organizationsandconsumers, and writes tenant-specific endpoints. Without a tenant, Microsoft is scaffolded disabled with a placeholder, like a missing client id. Projects scaffolded earlier still point atcommon; replace it with your tenant id in the auth server'sOAUTH_PROVIDERS. -
0928a39: Add
seamless migrate csv <file>to import users from a CSV export into an instance. It is a dry run unless--applyis passed, finds columns by header (or a--mapfile kept beside the export), validates each row locally with the shared@seamless-auth/typesschema, sends rows in batches of 200, and writes a CSV and JSON report of every row's outcome. Exits 1 when any row is rejected or invalid. Needs an auth server withPOST /admin/users/import. -
b651ff2: Relicense from AGPL-3.0-only to the Apache License, Version 2.0 (fells-code/seamless-auth-api#335). The
LICENSEfile, thelicensefield and the license header in source files now say Apache-2.0, and the AGPL summary inLICENSE.mdis removed. -
37c8c8a:
seamless verifycovers the OAuth migration cutover path (fells-code/seamless-auth-api#337) at the API layer. The spec:- Imports a user from a directory, then signs them in through that directory's OIDC provider. The link is made on the ID token's
oid, not the email. - Checks that the sign-in answers
nextStep: 'enroll_passkey', enrolls a passkey, and checks the prompt stops. - Retires the provider for the user's organization. It checks that the user's sessions are revoked and that the next sign-in is refused with
oauth_provider_retired. - Restores the provider and checks the user can sign in again.
The mock OIDC provider now issues signed ID tokens, serves
/jwks, and can sign in as a named user. The existingmockprovider is unaffected.Needs an auth API that includes fells-code/seamless-auth-api#348 (session revocation on retirement).
- Imports a user from a directory, then signs them in through that directory's OIDC provider. The link is made on the ID token's
Patch Changes
- 80991a5: Correct the advice printed after connecting a project to a managed application. It told you to set the auth server URL on your frontend, which cannot sign in; the frontend points at your backend, which runs the adapter. It now also names
JWKS_KIDamong the backend values. - 65e9668: Depend on
@seamless-auth/types^0.26.0(was^0.24.0), so the CLI's wire types track the current auth API contract.