Skip to content

New template: Logto 1.0.0 (5433) - #693

Open
jacobecox wants to merge 9 commits into
mainfrom
jacob/logto
Open

jacobecox wants to merge 9 commits into
mainfrom
jacob/logto

Conversation

@jacobecox

Copy link
Copy Markdown
Contributor

New template: Logto 1.0.0 (work item 5433), the open-source auth and identity platform (Logto OSS 1.45.0, MPL-2.0).

What it deploys

  • RELEASE-logto: 2 standard replicas serving sign-in pages, OIDC and the Management API (:3001). Interchangeable; all state is in PostgreSQL.
  • RELEASE-logto-admin (default on): the public Admin Console on its own canonical URL (:3002). It does not serve until the admin account exists.
  • Bundled postgres-highly-available 2.8.1 (default) or postgres 3.4.1 (one flag).
  • Optional domain resources for customDomain.core / customDomain.adminConsole.
  • Prerequisites: an admin dictionary secret (username, password) and the DB credentials dictionary secret.

Maintainer rulings built in

  • HA Postgres by default, single Postgres as the dev option.
  • The first admin is created automatically on first boot from the required admin.secretName secret, through the Admin Console's own registration flow, so it gets exactly what a manual Console claim gets. Sign-up is then closed. The secret is read once.
  • Public Admin Console on by default (the admin always exists before it serves).
  • Custom domains in v1. Domain rows are pending the test domain.

Testing (test-gvc-3, aws-us-west-2)

  • Local e2e suite: 10 passed, 0 failed. The six checks in logto/tests/checks.yaml cover the public issuer, the public Admin Console, bootstrap sign-in with wrong-password and sign-up-refused controls, the headline OIDC code + PKCE flow with an app and user created through the Management API, exactly one admin, and the schema being current.
  • Live round: 28 PASS, 1 FAIL fixed and re-tested, 3 PENDING-DOMAIN. Rows covered:
    • browser login and 16 Console routes
    • browser headline: app + user created in the Console, then a real sign-in with the id_token checked
    • rolling restart, replica stop and 20/20 sign-ins across replicas, 0 non-2xx
    • config propagation without Redis
    • replicas-4 lock race
    • upgrade from 1.44.0
    • admin-secret failure cases
    • claim gate
    • internalAccess, port-forward fallback
    • single-postgres mode
    • drift: Logto's resources clean; postgres-HA 2.8.1 probe drift is pre-existing in the subchart
    • uninstall
  • Found and fixed live:
    • Logto reads PORT, which the platform sets to the first port, so both servers bound 3002 on the admin workload. Fix: pin PORT/ADMIN_PORT.
    • The DB gate hung on a mesh-closed socket. Fix: treat the close as not-ready.
    • A Patroni failover crashed every replica, through an unhandled pg pool error upstream. Fix: a guard swallows only lost-connection errors. Re-test: about 58 s of failed sign-ins (the failover itself) and zero restarts.

Wizard

tw lint: ok logto 1.0.0: 0 errors, 0 warnings, 116/116 leaves covered
tw check-docs: fails only on forward links to the not-yet-written docs page (#admin-account, #access, #custom-domains, #database, #prerequisites).

Before ship

  • Custom-domain rows (needs the maintainer's test domain)
  • Wizard browser round in the test console
  • Social connectors (HANDOFF: real OAuth consent)
  • Maintainer ruling on the UI features not yet browser-tested (MFA, RBAC, organizations, M2M, SMTP)

🤖 Generated with Claude Code

https://claude.ai/code/session_01FZrfgWEQM4Kb8nMRmMPHEC

jacobecox and others added 3 commits October 29, 2026 18:08
Logto OSS 1.45.0 (work item 5433): two standard Logto replicas on a bundled
postgres-highly-available 2.8.1 (or single postgres 3.4.1), a public Admin
Console workload, an admin account created on first boot from a prerequisite
secret, optional custom domains. Includes catalog.yaml (and logto as an
alternative in keycloak/fusionauth), wizard.yaml, e2e tests and a briefing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FZrfgWEQM4Kb8nMRmMPHEC
- wizard: HA credentials help no longer points at a README section that does
  not exist; URL-safe character set matches the README
- values/README: backup minio comments point at the database templates' docs
  instead of a missing "Storage setup" section
- README: notes on canonical URLs with custom domains, and on domains across
  uninstall/reinstall
- bootstrap also verifies the admin's users_roles (Console user + Management
  API admin), not only the tenant organization role
- admin-console-public check cannot pass when the URL rewrite matches nothing

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FZrfgWEQM4Kb8nMRmMPHEC
Logto's pg pool emits an unhandled 'error' when PostgreSQL drops a
connection, so a Patroni failover crashed every replica at the same moment
(test round A5: ~60-70 s of failed sign-ins plus a cold boot of both
replicas). The start script now preloads a guard that swallows only
lost-connection errors; any other uncaught error still exits 1. Re-test:
SIGSTOP of the leader gave ~58 s of failed sign-ins (the failover itself),
zero Logto restarts, and all six checks passed afterwards.

Also from the test round: the README quotes the platform's missing-secret
message and notes that the first helm upgrade can restart the bundled
database; single-admin is marked as HA-baseline only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FZrfgWEQM4Kb8nMRmMPHEC
@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Template e2e tests

⚠️ logto/1.0.0 — 16/17 passed, 1 warning (7.4 min, aws-us-east-1)

Scenario Check Result
install 1.0.0 install + every workload ready pass
install 1.0.0 rendered == stored (Console Drift tab) warn — workload/e2eiwif1st10-postgres-ha spec.containers[0].livenessProbe.httpGet.scheme: stored "HTTP", chart omits it; workload/e2eiwif1st10-postgres-ha spec.containers[0].livenessProbe.initialDelaySeconds: stored 60, chart omits it; workload/e2eiwif1st10-postgres-ha spec.containers[0].livenessProbe.successThreshold: stored 1, chart omits it; workload/e2eiwif1st10-postgres-ha spec.containers[0].read
install 1.0.0 issuer-is-public-endpoint pass
install 1.0.0 admin-console-public pass
install 1.0.0 bootstrap-admin-sign-in pass
install 1.0.0 oidc-code-flow pass
install 1.0.0 rbac-and-m2m pass
install 1.0.0 mfa-totp pass
install 1.0.0 captcha-turnstile pass
install 1.0.0 mfa-backup-code pass
install 1.0.0 password-policy pass
install 1.0.0 user-suspension pass
install 1.0.0 custom-jwt-claims pass
install 1.0.0 single-admin pass
install 1.0.0 schema-current pass
install 1.0.0 no-op upgrade ×2 (no churn) pass
install 1.0.0 uninstall removes everything pass

Run logs

@jacobecox
jacobecox marked this pull request as ready for review October 30, 2026 17:49
github-actions Bot added a commit that referenced this pull request Oct 30, 2026
New template: Logto 1.0.0 (5433)
jacobecox and others added 4 commits October 30, 2026 12:07
github-actions Bot added a commit that referenced this pull request Oct 30, 2026
New template: Logto 1.0.0 (5433)
github-actions Bot added a commit that referenced this pull request Oct 30, 2026
New template: Logto 1.0.0 (5433)
…nce; CI checks for captcha, backup codes, password policy, suspension, custom JWT

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FZrfgWEQM4Kb8nMRmMPHEC
github-actions Bot added a commit that referenced this pull request Oct 31, 2026
New template: Logto 1.0.0 (5433)

This branch was successfully deployed

1 active deployment
e2e-nifah — 58af56ba Deployed Oct 31, 2026 by jacobecox via test (logto/1.0.0) #178
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant