Skip to content

Feat oauth2 improvements#3115

Merged
Meldiron merged 3 commits into
mainfrom
feat-oauth2-improvements
Jul 10, 2026
Merged

Feat oauth2 improvements#3115
Meldiron merged 3 commits into
mainfrom
feat-oauth2-improvements

Conversation

@Meldiron

Copy link
Copy Markdown
Contributor

What does this PR do?

  • Adds appwrite oauth2 provider
  • Adds two params to OIDC oauth2 provider

Test Plan

Manual QA

Appwrite:

CleanShot 2026-07-10 at 10 31 50@2x CleanShot 2026-07-10 at 10 31 54@2x CleanShot 2026-07-10 at 10 32 06@2x

OIDC:

CleanShot 2026-07-10 at 10 32 21@2x CleanShot 2026-07-10 at 10 32 33@2x CleanShot 2026-07-10 at 10 33 43@2x

Related PRs and Issues

x

Have you read the Contributing Guidelines on issues?

Yes

@appwrite

appwrite Bot commented Jul 10, 2026

Copy link
Copy Markdown

Console (appwrite/console)

Project ID: 688b7bf400350cbd60e9

Sites (1)
Site Status Logs Preview QR
 console-stage
688b7cf6003b1842c9dc
Ready Ready View Logs Preview URL QR Code

Tip

MCP server integration brings LLM superpowers to Claude Desktop and Cursor IDE

@greptile-apps

greptile-apps Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds the Appwrite OAuth2 provider and extends the OIDC provider with two new configurable parameters — a multi-select prompt picker and a numeric maxAge field — both surfaced in the Advanced accordion of the OAuth settings modal.

  • Appwrite provider: registered in oauth-providers.ts alphabetically and wired into updateOAuth.ts via the new updateOAuth2Appwrite SDK call.
  • OIDC prompt picker: a new Svelte 5 runes-based OidcPromptPicker component handles mutual-exclusivity of the None option and emits changes via $bindable; mainOAuth.svelte tracks initial vs. current values in hasOidcChanges to gate the Update button correctly.
  • OIDC maxAge: an InputNumber with nullable and min={0} sends 0 to the API when left empty, matching the expected "disabled" sentinel.

Confidence Score: 5/5

Safe to merge — the changes are additive (new provider, two new optional OIDC fields) with no modifications to existing provider flows.

Both new features are isolated: the Appwrite provider follows the same straightforward pattern as every other provider, and the OIDC prompt/maxAge additions use a dedicated state layer with correct change detection. No existing behaviour is altered.

No files require special attention.

Important Files Changed

Filename Overview
src/lib/stores/oauth-providers.ts Adds the Appwrite OAuth2 provider entry in alphabetical order between Apple and Auth0; uses the generic Main component, which is consistent with similar providers.
src/routes/(console)/project-[region]-[project]/auth/(providers)/oidcPromptPicker.svelte New Svelte 5 runes-based component for selecting OIDC prompt values; correctly uses $props/$bindable and the Svelte 5 onclick prop; handles mutual exclusivity of the "None" option correctly.
src/routes/(console)/project-[region]-[project]/auth/(providers)/mainOAuth.svelte Adds OIDC-specific prompt and maxAge state, change-detection, and UI; correctly filters custom params from basic/advanced display groups, and passes both values to the update function.
src/routes/(console)/project-[region]-[project]/auth/updateOAuth.ts Adds Appwrite provider case and extends the OIDC case with prompt and maxAge; maxAge defaults to 0 when null/undefined which matches the expected "disabled" sentinel on the API side.
package.json Bumps the @appwrite.io/console package to a new commit hash (6be9e62) to pull in the new SDK types for ProjectOAuth2OidcPrompt and updateOAuth2Appwrite.

Reviews (2): Last reviewed commit: "Code quality improvements" | Re-trigger Greptile

@Meldiron Meldiron merged commit f348973 into main Jul 10, 2026
4 checks passed
@Meldiron Meldiron deleted the feat-oauth2-improvements branch July 10, 2026 08:59
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.

2 participants