Commit Graph

130 Commits

Author SHA1 Message Date
Alessandro (Ale) Segala
22cf4eab93 tests: run the E2E suite against a standalone Francis runtime
Adds a matrix entry that starts a SQLite-backed Francis runtime next to
Pocket ID and points FRANCIS_HOST at it, so the same Playwright suite runs
with the actor state, alarms, and placement owned by the runtime instead of
embedded in Pocket ID.

The suite needs no changes to work in that topology: the E2E reset seeds
every actor through actors.Service() and deliberately leaves the actor
store alone, so it behaves the same whichever side owns it.

The CLI spec is the exception, since export and import are the two commands
whose behaviour genuinely differs. It now picks the right Compose file,
expects an export to carry no francis.bin, feeds the import an archive
without one, and gains a case asserting that an archive that does carry one
is refused.

The runtime is reached over the Compose network on its UDP port, so nothing
is published to the host, and the cluster CA is left unpinned, which
exercises the same trust-on-first-use path an operator gets without
FRANCIS_CA. Pinning is covered by a unit test instead.
2026-08-31 05:27:04 +00:00
Alessandro (Ale) Segala
7c79a9e14b feat: add explicit public keys for federated client credentials (#1702)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-08-28 21:12:15 +00:00
dependabot[bot]
429793f33c chore(deps): Bump the "all-dependencies" group with 3 updates across multiple ecosystems (#1725)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Elias Schneider <login@eliasschneider.com>
2026-08-28 21:49:39 +02:00
Elias Schneider
a487c78550 feat: reduce one time access code length for better UX 2026-08-18 21:31:22 +02:00
Elias Schneider
915a6bcf08 feat: allow admins to auto grant APIs to CIMD clients (#1692) 2026-08-18 20:02:14 +02:00
Alessandro (Ale) Segala
6fba970159 tests: fix flaky update application image e2e test (#1690) 2026-08-15 00:35:15 +02:00
Alessandro (Ale) Segala
155a1fcba0 feat: support multiple client secrets per OIDC client (#1679) 2026-08-11 00:54:52 +00:00
Elias Schneider
3ca9a55c71 feat: hide apps without launch url on My Apps page 2026-08-10 22:53:35 +02:00
Elias Schneider
0c9a03e519 feat: add animated logo as default logo 2026-08-08 20:50:37 +02:00
Elias Schneider
d6a47243db feat: add settings for limiting what passkeys can be used (#1662)
Co-authored-by: Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com>
2026-08-07 11:17:38 +02:00
Alessandro (Ale) Segala
1c9233c236 fix: make OIDC client token lifetimes optional (#1650) 2026-08-05 20:11:40 +00:00
Elias Schneider
4fe6f0688c tests: use smaller francis.bin 2026-08-05 22:02:00 +02:00
Alessandro (Ale) Segala
08407ae564 feat: include Francis data in Pocket ID backups (#1645)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Elias Schneider <login@eliasschneider.com>
2026-08-05 19:57:38 +00:00
Elias Schneider
5d43c4aaeb feat: add ability to customize session duration of clients (#1641) 2026-08-03 23:23:29 +02:00
Elias Schneider
69d55ada6c fix: explicitly set SameSite to Lax for cookies 2026-08-03 22:58:01 +02:00
Elias Schneider
7a4d0dd275 refactor: standardize API error handling (#1635) 2026-08-02 23:36:06 +02:00
Elias Schneider
281bea54d3 tests(e2e): fix wrong database version in database.json 2026-08-02 18:43:54 +02:00
Elias Schneider
598895e7c5 fix: session revoke fails if orphaned session tokens exist 2026-08-02 18:31:15 +02:00
Jean-François Roy
1934efa84c feat: implement OAuth Client ID Metadata Document (#1525) (#1526)
Co-authored-by: Elias Schneider <login@eliasschneider.com>
2026-08-02 15:05:39 +00:00
Elias Schneider
0c5e0149cd chore(deps): upgrade vulnerable dependencies 2026-07-30 00:43:11 +02:00
Elias Schneider
9e72bc1c70 feat: display country and city on qr code login approval screen 2026-07-30 00:22:31 +02:00
Elias Schneider
0c27f733b9 feat: drop user initiated one time access token login method 2026-07-29 23:49:08 +02:00
Elias Schneider
e1fd1d320f feat: add qr code alternative sign in method (#1594)
Co-authored-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
2026-07-28 01:30:13 +02:00
Elias Schneider
ca28ddcb04 fix: race condition in initial admin setup 2026-07-28 00:19:01 +02:00
Elias Schneider
43aaccd5bf refactor: modularize email module and use actor for email verification (#1625) 2026-07-27 20:00:59 +02:00
Alessandro (Ale) Segala
a1b4e1d2b2 feat: migrate one-time and signup tokens to an actor (#1611)
Co-authored-by: Elias Schneider <login@eliasschneider.com>
2026-07-26 15:32:43 +02:00
Elias Schneider
6e859de2dd tests(e2e): fix missing data in database.json 2026-07-22 19:01:33 +02:00
Elias Schneider
f6b02efe45 chore: upgrade vulnerable dependencies 2026-07-22 18:48:07 +02:00
Elias Schneider
ad06ea6e00 fix: datatype mismatch between postgres and sqlite causes import to fail 2026-07-22 18:13:13 +02:00
Elias Schneider
316cf47ceb fix: INTERNAL_APP_URL not reflected in UI URLs 2026-07-13 10:51:24 +02:00
Alessandro (Ale) Segala
cfda5f693b refactor: manage instance ID in the KV table (#1579) 2026-07-11 16:16:05 +02:00
Elias Schneider
28a553f63b feat: add tab bar navigation for crowded pages 2026-07-10 15:33:02 +02:00
Alessandro (Ale) Segala
b2711ced99 fix: /authorize endpoint crashes when list of scopes is empty (#1575) 2026-07-08 17:48:32 -07:00
Sean McKenzie
6734585712 feat: add description field to oidc clients (#1547)
Co-authored-by: Elias Schneider <login@eliasschneider.com>
2026-07-08 13:41:51 +02:00
Elias Schneider
a5f2192d67 tests(e2e): fix migration version in database.json 2026-07-08 11:19:09 +02:00
Elias Schneider
09d196f7c5 feat: add OAuth APIs with scoped permissions (#1542)
Co-authored-by: Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com>
2026-07-06 12:25:02 -07:00
Alessandro (Ale) Segala
d359438814 tests(e2e): make API key renewal date picker navigation date-independent (#1560) 2026-07-02 21:16:47 -05:00
Elias Schneider
931a6c2adb feat: drop TOFU support for callback URL 2026-07-02 14:05:37 +02:00
James18232
8564d35682 feat: login code input boxes (#1545)
Co-authored-by: james <james@goldfish.net>
Co-authored-by: Elias Schneider <login@eliasschneider.com>
2026-07-02 07:56:18 +00:00
James18232
97bd466f38 feat: prompt admin with PKCE client support hint (#1499)
Co-authored-by: james <james@goldfish.net>
Co-authored-by: Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com>
Co-authored-by: Elias Schneider <login@eliasschneider.com>
Co-authored-by: Kyle Mendell <kmendell@ofkm.us>
2026-06-28 11:10:30 -07:00
Elias Schneider
d467855870 feat: add ability to skip consent for client 2026-06-26 23:35:26 +02:00
Elias Schneider
16b5c16a66 fix: CSP error with response_mode=form_post 2026-06-26 14:51:56 +02:00
Elias Schneider
2ed703540d fix: don't reject offline_accessscope 2026-06-26 14:43:22 +02:00
Elias Schneider
7eaaea717b tests(e2e): fix flaky test 2026-06-22 23:00:10 +02:00
Elias Schneider
8689ddd72b feat: improve error handling on authorize page 2026-06-22 22:12:14 +02:00
Elias Schneider
8158452b37 refactor: use fosite for OAuth 2.0 logic (#1520) 2026-06-22 18:42:02 +02:00
Elias Schneider
dbbe2a403a tests(e2e): fix locators after shadcn upgrade 2026-06-21 20:52:42 +02:00
dependabot[bot]
24c85029b4 chore(deps): Bump the "all-dependencies" group with 4 updates across multiple ecosystems (#1523)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-16 10:17:14 +00:00
Elias Schneider
effd2a146f tests(e2e): fix wrong assertion 2026-06-16 12:08:38 +02:00
Elias Schneider
8a75774971 fix: callback URL validation not validated if prompt=none 2026-06-16 12:02:57 +02:00