March has been a busy month here at PropelAuth, with a focus on making things easier - whether it’s improving initial integration experiences or saving time for your customer facing team members.

Here are the highlights:

### [User Management & Configuration Updates](/content/post/march-2025-updates#user-management-configuration-updates/index.html)

All of these updates can be found via your PropelAuth dashboard.

- Expiration time for emails with expiring links (magic links, invitations, etc) can now be configured via the **Emails** page
- SCIM connections for an organization can now be added and removed via their **Organization** page
- Added search to the Org Members list pages
- User properties can now be unset/cleared from the dashboard
- We now display the name field for Waitlist users (if you are collecting name)
- You can now sort your API keys list by expires at, created at and last active at.

### [Enterprise SSO/SAML & SCIM:](/content/post/march-2025-updates#enterprise-ssosaml-scim/index.html)

- Added an `idp` query parameter to the SAML hosted pages so you can link your customers directly to a specific IDP guide (e.g. {SAML_SETUP_LINK}?idp=okta links specifically to the Okta guide).
- Added support for groups syncing in Okta SCIM
- Updated the Entra guide w/ more instructions based on your feedback.
- Added a more helpful error message for users that attempt to use MSFT SSO without a properly configured account.
- Invitation links to SAML organizations now include a login method hint for SAML to avoid confusion

### [Simpler Streamlit Integration](/content/post/march-2025-updates#simpler-streamlit-integration/index.html)

Streamlit recently announced support for OpenID Connect (OIDC). This was incredibly exciting to us as a team because it allowed us to rethink our Streamlit integration and streamline the entire experience. [Learn more about the new integration here.](https://propelauth.mymidnight.blog/post/streamlit-authentication-authorization/)

### [Next.js CLI](/content/post/march-2025-updates#nextjs-cli/index.html)

We took a poll internally and agreed: the initial set up for PropelAuth in Next.js projects took too long… so we built a CLI. Now you can go from nothing to Next.js with auth in under 2 minutes. [Read more about it here](/content/post/cli-for-nextjs?ref=propelauth.mymidnight.blog).

### [Client libraries / API:](/content/post/march-2025-updates#client-libraries-api/index.html)

- The latest version of our client libraries includes some changes to better support very high scale / burst-y API use cases. If you are using [API keys](/content/api-key-authentication?ref=propelauth.mymidnight.blog), you likely will want to upgrade here.
- The Create User API now has an option `ignore_domain_restrictions` which you can use to bypass any [allowlist/denylists](/content/post/limiting-sign-ups?ref=propelauth.mymidnight.blog) in case you want to override those settings temporarily.
- `extra_domains` and `legacy_org_id` are now properly passed back w/ all org information.

### [.NET (Beta)](/content/post/march-2025-updates#net-beta/index.html)

- Our official .NET library is live and documented [here](https://docs.propelauth.com/guides-and-examples/guides/dot-net-oauth-guide?ref=propelauth.mymidnight.blog). It supports configurations where you use .NET as a backend only or configurations where you use .NET as a fullstack framework (like Blazor).
- We added support for migrating .NET password hashes. .NET password hashes are a bit different than most, so if you are interested in learning more - send us [an email](mailto:support@propelauth.com) and we can help.

### [Terraform](/content/post/march-2025-updates#terraform/index.html)

- You can now configure [API Key Expiration alerts](https://registry.terraform.io/providers/PropelAuth/propelauth/latest/docs/resources/api_key_alert?ref=propelauth.mymidnight.blog), [OAuth clients](https://registry.terraform.io/providers/PropelAuth/propelauth/latest/docs/resources/oauth_client?ref=propelauth.mymidnight.blog), and [Customer Facing Audit Log](https://docs.propelauth.com/getting-started/basics/hosted-pages?ref=propelauth.mymidnight.blog#organization-pages)

### [Misc](/content/post/march-2025-updates#misc/index.html)

- We now support [Gitlab SSO](https://docs.propelauth.com/sso-and-integrations/social-login/gitlab?ref=propelauth.mymidnight.blog)
- Our OAuth flows now properly support [Signup Query Params](https://docs.propelauth.com/overview/user-management/user-insights?ref=propelauth.mymidnight.blog#user-signup-query-parameters) (like utm codes). Additional parameters that are passed in here will be properly forwarded to the signup page, and assigned to the user.
- `legacy_user_id` can now be edited and searched for in the dashboard
- Added a `user.locked` webhook for when a user’s account is locked for security reasons.
- Added a workaround to our Remix library since Cloudflare’s Remix integration doesn’t properly clean up state locally.
