chore: version packages#36
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
9 times, most recently
from
July 14, 2026 03:16
7307a44 to
5fe700d
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
July 14, 2026 04:02
5fe700d to
129d540
Compare
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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
seamless-cli@0.6.0
Minor Changes
seamless userscoverslist(with client-side--limit/--offsetpaging and--json),delete <id>(with confirmation),credentials <id>(from the adminuser detail endpoint), and
prepare-device-replacement <id>for admin-assistedrecovery.
seamless orgcoverslist,create,get, andupdate, andseamless org memberscoverslist,add(by--userid or--email, with--roles/--scopes),update, andremove(with confirmation). Every commandsurfaces a 403 as a clear permission error, and device replacement explains the
step-up requirement when the CLI session is not elevated. Accepts
--profileand honors
SEAMLESS_PROFILE.seamless profilecommands so the CLI cantarget multiple Seamless Auth instances (self-hosted, managed tenant, local dev)
under named profiles. Profiles live in
~/.config/seamless/config.json(respecting
XDG_CONFIG_HOME) and hold no secrets. New subcommands:profile list,profile add,profile use, andprofile remove. The active profile canbe selected per command with
--profile <name>or theSEAMLESS_PROFILEenvironment variable, defaulting to the
defaultprofile.attaches the Bearer access token, and transparently refreshes on expiry. On a
401 it calls
POST /refreshwith the opaque refresh token, persists the rotatedpair, and retries the original request once. A rotated or reused refresh token
clears the local session and raises a clear re-login prompt instead of a stack
trace. Non-JSON and empty response bodies are parsed defensively, and rate-limit
(429) responses are surfaced without triggering a refresh.
seamless config, config-as-code for an instance's system configuration(requires an admin role).
config get [key] [--json]reads the config fromGET /system-config/admin,config set <key> <value>writes one key viaPATCH /system-config/admin(the value is parsed as JSON, falling back to a string, soTTLs, arrays, booleans, and numbers all work), and
config roleslists theinstance's roles.
config diff <file>shows how a local JSON config filediffers from the instance, and
config apply <file>applies the delta after aconfirmation prompt, with
--dry-runto preview. Read-only or unknown keys in afile are ignored on apply, and a non-admin user gets a clear permission error.
Accepts
--profileand honorsSEAMLESS_PROFILE.Manager, Linux Secret Service) via
@napi-rs/keyringinstead of on disk. Tokensare scoped per profile (keyed by profile name and instance URL) so multiple
instances never collide, and the refresh token, the durable secret, never
touches config or logs.
seamless profile removenow clears the profile'skeychain entry. When no keychain is available (for example headless CI), the CLI
reads a refresh token from
SEAMLESS_REFRESH_TOKENif set and otherwise failswith a clear, documented error rather than writing secrets to disk.
seamless login, an interactive email OTP login for the active profile'sSeamless Auth instance. It calls
POST /login(honoring the instance's returnedloginMethods), triggers the code withGET /otp/generate-login-email-otp,prompts for the code you paste from your inbox, and verifies it with
POST /otp/verify-login-email-otp. On success it stores the session in the OS keychainand records the identity (sub, email, identifier type) on the profile. The
command caps local code retries so it does not trip the per-IP OTP limiter,
surfaces a 429 clearly, refreshes the code automatically if the 5 minute
ephemeral window lapses, and reports unreachable instances without a stack trace.
Accepts the identifier positionally or with
--identifier, and targets aspecific profile with
--profile.seamless sessionsto list and revoke the logged-in user's active sessions.seamless sessions(orsessions list) callsGET /sessionsand renders eachsession's id, device or user agent, IP, and last-used time, marking the current
session.
seamless sessions revoke <id>callsDELETE /sessions/:id, andseamless sessions revoke --allcallsDELETE /sessions. Revoking the currentsession, or all sessions, prompts for confirmation first and then clears the
local keychain tokens, since that request signs you out. Accepts
--profileandhonors
SEAMLESS_PROFILE.seamless whoamiandseamless logout.whoamicallsGET /users/methrough the authenticated client and prints the identity (sub, email, roles)
alongside the active profile and instance URL, failing cleanly with a "not
logged in" message when there is no session.
logoutends the current sessionwith
DELETE /logoutand then clears the profile's keychain tokens;logout --allrevokes every session for the user withDELETE /logout/allfirst. Bothcommands accept
--profile(and honorSEAMLESS_PROFILE) and always clear thelocal tokens even if the server session was already gone.
Patch Changes
sessions, logout, config, and the users and organizations admin verbs), including
per-platform keychain behavior and the headless
SEAMLESS_REFRESH_TOKENfallback. Add a gated end-to-end test that drives the real login flow, an
authenticated call, transparent refresh, and refresh-reuse rejection against a
running instance (enabled with
SEAMLESS_E2E_URL), plus an opt-in rate-limitcheck.
seamless verifynow prints a consolidated summary report at the end of the run:the seamless package versions under test (source versions for
--local, thedeclared pins for released runs), one line per conformance layer (API / adapter and
each web template) with its pass/fail status and duration, and an overall verdict.
It is printed after teardown so it stays on screen without scrolling back through
the phase output.