Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove closed issues referenced in docs #3327

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 83 additions & 53 deletions astro/src/components/api/API.astro
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
---
import APIAuthenticationIcon from "src/components/api/APIAuthenticationIcon.astro";
import Aside from "src/components/Aside.astro";
import StaticPatchNote from "src/content/docs/sdks/_static-patch-note.mdx";

interface Props {
authentication?: ['api-key' | 'basic' | 'client-credentials' | 'jwt' | 'local-bypass' | 'none'];
authentication?: [
| "api-key"
| "basic"
| "client-credentials"
| "jwt"
| "local-bypass"
| "none",
];
description?: string;
method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't feel comfortable changing the quote choice in this kind of PR. From looking at a few other components, we seem to use single quotes.

Please either reverse or get @lyleschemmerling or another engineer to bless these changes.

method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
showPatch?: false;
title?: string;
uri?: string;
Expand All @@ -14,7 +21,7 @@ interface Props {
const { authentication, method, showPatch, title, uri }: Props = Astro.props;

// Parse URI
let parts= [];
let parts = [];
let parameters = null;

if (uri) {
Expand All @@ -24,90 +31,113 @@ if (uri) {
let q = uri.indexOf("?");
if (q >= 0) {
parameters = uri.substring(q);
url = url.substring(0, q );
url = url.substring(0, q);
}

// Optionally extract one or more segment.
let type = 'literal';
let atom = '';
let type = "literal";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't feel comfortable changing the quote choice in this kind of PR. From looking at a few other components, we seem to use single quotes.

Please either reverse or get @lyleschemmerling or another engineer to bless these changes.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just had a chat in the engineering huddle with the team this morning. I do think that we are going to go with double quotes, but I want to get that into eslint and then do a big bang commit that cleans up the code per the rules

let atom = "";

for (let i = 0; i < url.length; i++) {
let c = url.charAt(i);
atom += c;

if (c === '{') {
if (c === "{") {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't feel comfortable changing the quote choice in this kind of PR. From looking at a few other components, we seem to use single quotes.

Please either reverse or get @lyleschemmerling or another engineer to bless these changes.

if (atom.length > 0) {
parts.push({type: 'literal', value: atom.substring(0, atom.length - 1)});
parts.push({
type: "literal",
value: atom.substring(0, atom.length - 1),
});
}
type = 'segment';
atom = '{';
} else if (c === '}') {
parts.push({type: 'segment', value: atom});
type = 'literal';
atom = '';
type = "segment";
atom = "{";
} else if (c === "}") {
parts.push({ type: "segment", value: atom });
type = "literal";
atom = "";
}
}

if (atom.length > 0) {
parts.push({type: 'literal', value: atom});
parts.push({ type: "literal", value: atom });
}

// Account for a literal URL w/out any parameter segments
if (parts.length === 0) {
parts.push({type: 'literal', value: url});
parts.push({ type: "literal", value: url });
}
}

const authenticationTypes = {
'api-key': '/docs/apis/authentication#api-key-authentication',
'none': '/docs/apis/authentication#no-authentication-required',
'jwt': '/docs/apis/authentication#jwt-authentication',
'basic': '/docs/apis/authentication#basic-authentication-using-an-api-key',
'client-credentials': '/docs/apis/authentication#client-credentials',
'local-bypass': '/docs/apis/authentication#localhost-authentication-bypass'
}
"api-key": "/docs/apis/authentication#api-key-authentication",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Were you running Prettier or something similar, or were just going off of rules in VS Code?

none: "/docs/apis/authentication#no-authentication-required",
jwt: "/docs/apis/authentication#jwt-authentication",
basic: "/docs/apis/authentication#basic-authentication-using-an-api-key",
"client-credentials": "/docs/apis/authentication#client-credentials",
"local-bypass": "/docs/apis/authentication#localhost-authentication-bypass",
};
---

{(authentication || title) &&
<div class="border-b border-slate-300 dark:border-slate-800 flex flex-row align-middle">
{ authentication &&
<div class="not-prose flex mb-2 flex-row mx-1">
{ authentication.map(auth =>
<a class="no-underline flex" href={authenticationTypes[auth]}>
<APIAuthenticationIcon type={auth}/>
</a>
{
(authentication || title) && (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah the formatting changes are pretty distracting and it is hard to tell what is content and what is syntax

<div class="border-b border-slate-300 dark:border-slate-800 flex flex-row align-middle">
{authentication && (
<div class="not-prose flex mb-2 flex-row mx-1">
{authentication.map((auth) => (
<a class="no-underline flex" href={authenticationTypes[auth]}>
<APIAuthenticationIcon type={auth} />
</a>
))}
</div>
)}
{title && (
<span class="font-semibold text-sm mt-1 dark:text-white text-slate-800">
{title}
</span>
)}
</div>
}
{ title &&
<span class="font-semibold text-sm mt-1 dark:text-white text-slate-800">{ title }</span>
}
</div>
)
}

<div class="mt-4 mb-8">
<div class="bg-gray-800 my-0 py-2 px-4 rounded">
<span class="text-yellow-400 font-semibold pr-2 text-sm leading-5 tracking-normal">{ method }</span>
<span
class="text-yellow-400 font-semibold pr-2 text-sm leading-5 tracking-normal"
>{method}</span
>
<span class="font-mono text-white text-sm">
{ uri &&
parts.map(part =>
<span class:list={[ part.type === 'segment' ? 'text-blue-300 font-semibold spellcheck-ignore' : 'font-normal', 'break-words leading-5 tracking-normal spellcheck-ignore']}>{ part.value }</span>
)

{
uri &&
parts.map((part) => (
<span
class:list={[
part.type === "segment"
? "text-blue-300 font-semibold spellcheck-ignore"
: "font-normal",
"break-words leading-5 tracking-normal spellcheck-ignore",
]}
>
{part.value}
</span>
))
}<!-- Note: This comment is removing white space between these two expressions to remove white space between the spans.
If any white space exists, it will render as a space on the page.
-->{ parameters && <span class="text-blue-300 break-words leading-5 tracking-normal spellcheck-ignore">{ parameters }</span> }
-->{
parameters && (
<span class="text-blue-300 break-words leading-5 tracking-normal spellcheck-ignore">
{parameters}
</span>
)
}
</span>
</div>
</div>

{ showPatch && method == 'PUT' &&
<div class="mb-14">
<Astro.self method="PATCH" uri={uri}/>
<Aside type="note" title="Please read">
<p>When using the PATCH method, you can either use the same request body documentation that is provided for the PUT request for backward compatibility. Or you may use either <a href="https://www.rfc-editor.org/rfc/rfc6902">JSON Patch/RFC 6902]</a> or <a href="https://www.rfc-editor.org/rfc/rfc7396">JSON Merge Patch/RFC 7396</a>. See the <a href="/docs/apis/#the-patch-http-method">PATCH documentation</a> for more information.</p>
<p>When using the PATCH method with a <code>Content-Type</code> of <code>application/json</code> the provided request parameters will be merged into the existing object, this means all parameters are optional when using the PATCH method and you only provide the values you want changed. A <code>null</code> value can be used to remove a value. Patching an <code>Array</code> will result in all values from the new list being appended to the existing list, this is a known limitation to the current implementation of PATCH.</p>
</Aside>
</div>
{
showPatch && method == "PUT" && (
<div class="mb-14">
<Astro.self method="PATCH" uri={uri} />
<StaticPatchNote />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't believe adding this here is correct. See my comment with the text I think you are confusing two issues.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This actually looks right for the api doc, but is not what we want on the sdk pages

</div>
)
}

Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ import APIField from 'src/components/api/APIField.astro';

{props.idp_type === 'Google' && <>
<span class="text-green-600">Since 1.44.0</span> <br/>
<strong>If you are using a version of FusionAuth older than 1.44.0</strong>, <code>UsePopup</code> won't work. <code>UseRedirect</code> will continue to work after this date. Please see <a href="https://github.com/FusionAuth/fusionauth-issues/issues/1939">Issue #1939</a> for more. This <a href="/community/forum/topic/2329/upcoming-google-identity-provider-changes">forum post</a> has more details on an available workaround and upgrade process.
<strong>If you are using a version of FusionAuth older than 1.44.0</strong>, <code>UsePopup</code> won't work. <code>UseRedirect</code> will continue to work after this date. Please see [release 1.44.0](/docs/release-notes/#version-1-44-0) for more information. This <a href="/community/forum/topic/2329/upcoming-google-identity-provider-changes">forum post</a> has more details on an available workaround and upgrade process.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<strong>If you are using a version of FusionAuth older than 1.44.0</strong>, <code>UsePopup</code> won't work. <code>UseRedirect</code> will continue to work after this date. Please see [release 1.44.0](/docs/release-notes/#version-1-44-0) for more information. This <a href="/community/forum/topic/2329/upcoming-google-identity-provider-changes">forum post</a> has more details on an available workaround and upgrade process.
<strong>If you are using a version of FusionAuth older than 1.44.0</strong>, <code>UsePopup</code> won't work. <code>UseRedirect</code> will continue to work after this date. Please see [the 1.44.0 release notes](/docs/release-notes/#version-1-44-0) for more information. This [forum post](/community/forum/topic/2329/upcoming-google-identity-provider-changes) has more details on an available workaround and upgrade process.

</>}
</APIField>
Original file line number Diff line number Diff line change
Expand Up @@ -190,5 +190,5 @@ If you wish to enable an [invisible reCAPTCHA](https://developers.google.com/rec
```

<Aside type="note">
On versions of FusionAuth prior to 1.46.0 you will need to update the JavaScript in order to properly handle the form submit for invisible reCAPTCHA. See [this GitHub issue](https://github.com/FusionAuth/fusionauth-issues/issues/2237) for more information.
On versions of FusionAuth prior to 1.46.0 you will need to update the JavaScript in order to properly handle the form submit for invisible reCAPTCHA. See [release 1.46.0](/docs/release-notes/#version-1-46-0) for more information.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
On versions of FusionAuth prior to 1.46.0 you will need to update the JavaScript in order to properly handle the form submit for invisible reCAPTCHA. See [release 1.46.0](/docs/release-notes/#version-1-46-0) for more information.
On versions of FusionAuth prior to 1.46.0 you will need to update the JavaScript in order to properly handle the form submit for invisible reCAPTCHA. See [the 1.46.0 release notes](/docs/release-notes/#version-1-46-0) for more information.

</Aside>
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
An Application's OAuth configuration allows you to specify the logout behavior of an application as either "All applications" or "Redirect only."
Specifying the default value of "All applications" will call the configured logout URL for each application in the Tenant _except_ for the FusionAuth admin application.

As of version 1.37, this is no longer a limitation. See the [GitHub issue](https://github.com/FusionAuth/fusionauth-issues/issues/1699) for more information.
As of version [1.37](/docs/release-notes/#version-1-37-0), this is no longer a limitation. See [release notes](/docs/release-notes/#version-1-37-0) for more information.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
As of version [1.37](/docs/release-notes/#version-1-37-0), this is no longer a limitation. See [release notes](/docs/release-notes/#version-1-37-0) for more information.
As of version 1.37.0, this is no longer a limitation. See [the release notes for version 1.37.0](/docs/release-notes/#version-1-37-0) for more information.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When possible we want to refer to specific version numbers.

Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ This will take you to the `Add Google` panel, and you'll fill out the `Client Id

<span class="text-green-500">Since 1.44.0</span>

**If you are using a version of FusionAuth older than 1.44.0**, `Use popup for login` won't work. `UseRedirect` will continue to work after this date. Please see [Issue #1939](https://github.com/FusionAuth/fusionauth-issues/issues/1939) for more. This [forum post](/community/forum/topic/2329/upcoming-google-identity-provider-changes) has more details on an available workaround and upgrade process.
**If you are using a version of FusionAuth older than 1.44.0**, `Use popup for login` won't work. `UseRedirect` will continue to work after this date. Please see [release 1.44.0](/docs/release-notes/#version-1-44-0) for more information. This <a href="/community/forum/topic/2329/upcoming-google-identity-provider-changes">forum post</a> has more details on an available workaround and upgrade process.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**If you are using a version of FusionAuth older than 1.44.0**, `Use popup for login` won't work. `UseRedirect` will continue to work after this date. Please see [release 1.44.0](/docs/release-notes/#version-1-44-0) for more information. This <a href="/community/forum/topic/2329/upcoming-google-identity-provider-changes">forum post</a> has more details on an available workaround and upgrade process.
**If you are using a version of FusionAuth older than 1.44.0**, `Use popup for login` won't work. `UseRedirect` will continue to work after this date. Please see [the notes for release 1.44.0](/docs/release-notes/#version-1-44-0) for more information. This [forum post](/community/forum/topic/2329/upcoming-google-identity-provider-changes) has more details on an available workaround and upgrade process.

</APIField>
<APIField name="Button text" required>
The text to be displayed in the button on the login form. This value is defaulted to `Login with Google` but it may be modified to your preference.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import InlineField from 'src/components/InlineField.astro';
import InlineUIElement from 'src/components/InlineUIElement.astro';
import Breadcrumb from 'src/components/Breadcrumb.astro';
import JSON from 'src/components/JSON.astro';
import {RemoteCode} from '@fusionauth/astro-components';
import { RemoteCode } from '@fusionauth/astro-components';
import ApplicationManagedSessionsStart from 'src/diagrams/docs/lifecycle/authenticate-users/application-managed-sessions-start.astro';
import ApplicationManagedSessionInvalid from 'src/diagrams/docs/lifecycle/authenticate-users/application-managed-session-invalid.astro';
import ApplicationManagedSessionsRequests from 'src/diagrams/docs/lifecycle/authenticate-users/application-managed-sessions-requests.astro';
Expand Down Expand Up @@ -426,7 +426,7 @@ The FusionAuth SSO session allows transparent authentication on one browser or d
* the refresh token representing the FusionAuth SSO session is revoked via an API call or the admin UI

<Aside type="note">
Previous to version 1.52, setting the SSO session to a low value and enabling other post authentication workflows such as an OAuth consent screen could cause a login workflow to be restarted. See this [GitHub issue for more details](https://github.com/FusionAuth/fusionauth-issues/issues/2736).
Previous to version 1.52, setting the SSO session to a low value and enabling other post authentication workflows such as an OAuth consent screen could cause a login workflow to be restarted. See this [release 1.53.0](/docs/release-notes/#version-1-53-0), where this was fixed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Previous to version 1.52, setting the SSO session to a low value and enabling other post authentication workflows such as an OAuth consent screen could cause a login workflow to be restarted. See this [release 1.53.0](/docs/release-notes/#version-1-53-0), where this was fixed.
Previous to version 1.52, setting the SSO session to a low value and enabling other post authentication workflows such as an OAuth consent screen could cause a login workflow to be restarted. See the [release notes for version 1.53.0](/docs/release-notes/#version-1-53-0) for more details.

</Aside>

<SessionsExpiration />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import MfaMigration from 'src/content/docs/lifecycle/authenticate-users/_mfa-mig
import MfaTroubleshooting from 'src/content/docs/lifecycle/authenticate-users/_mfa-troubleshooting.mdx';
import StepUpDiagram from 'src/diagrams/docs/lifecycle/authenticate-users/step-up-auth.astro';
import { YouTube } from '@astro-community/astro-embed-youtube';
import StaticPatchNote from 'src/content/docs/sdks/_static-patch-note.mdx';

<YouTube id="GM2JPTu-EE4" />

Expand Down Expand Up @@ -427,8 +428,8 @@ user_two_factor_removed=`echo $user| jq 'del(.[].twoFactor[])' -`
curl -XPUT -H 'Content-type: application/json' -H "Authorization: $API_KEY" 'https://sandbox.fusionauth.io/api/user/00000000-0000-0000-0000-000000000004' -d "$user_two_factor_removed"
```

The reason you need to retrieve the user and modify the data, then use `PUT` to update it, is because of how `PATCH` handles arrays.
[Read this tracking issue for more info.](https://github.com/FusionAuth/fusionauth-issues/issues/441)
{/* TODO: check if this still makes sense */}
<StaticPatchNote />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not put the static patch note here. I do think that you can remove Read this tracking issue for more info.](https://github.com/FusionAuth/fusionauth-issues/issues/441) and point folks at https://fusionauth.io/docs/apis/#the-patch-http-method


### Building Your Own Interface

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ The **First-party service authorization** mode is the inverse of the **Third-par

With this mode, your OAuth server might display a "permission grant screen" to the user asking if they want to grant the third-party application permissions to your APIs. This isn't strictly necessary and depends on your requirements, but if it is, you want custom scopes.

Custom scopes are not currently supported in FusionAuth; here's the [GitHub tracking issue](https://github.com/FusionAuth/fusionauth-issues/issues/275).
Custom scopes are now supported in FusionAuth; you can find more information within [OAuth Scopes](/docs/get-started/core-concepts/scopes).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Custom scopes are now supported in FusionAuth; you can find more information within [OAuth Scopes](/docs/get-started/core-concepts/scopes).
Custom scopes are now supported in FusionAuth; you can find more information in the [OAuth Scopes documentation](/docs/get-started/core-concepts/scopes).


## Machine-to-machine Authorization

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import SessionsExpiration from 'src/content/docs/lifecycle/authenticate-users/_s
import SSOLogin from 'src/diagrams/docs/lifecycle/authenticate-users/sso-login.astro';
import SSOLogout from 'src/diagrams/docs/lifecycle/authenticate-users/sso-logout.astro';
import { YouTube } from '@astro-community/astro-embed-youtube';
import {RemoteCode} from '@fusionauth/astro-components';
import { RemoteCode } from '@fusionauth/astro-components';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
import { RemoteCode } from '@fusionauth/astro-components';
import {RemoteCode} from '@fusionauth/astro-components';

Consistency :)


This guide will walk you through setting up single sign-on (SSO) between two web applications using FusionAuth as their common authentication and authorization server. You will use the hosted login pages for your login form.

Expand Down Expand Up @@ -376,5 +376,5 @@ Navigate to <Breadcrumb>Applications -> Your Application -> OAuth</Breadcrumb> a

* You can view the [example application's codebase](https://github.com/fusionauth/fusionauth-example-node-sso).
* The [Tenant API](/docs/apis/tenants) can be used to manage single sign-on related configuration.
* This guide uses the hosted login pages. If you are using the Login API and building your own pages, [check out the comments on this issue](https://github.com/FusionAuth/fusionauth-issues/issues/171) for guidance.
* This guide uses the hosted login pages. If you are using the Login API and building your own pages, [see our Login API Overview](/docs/lifecycle/authenticate-users/login-api/) for guidance.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm. If you look at the comments on 171, particularly FusionAuth/fusionauth-issues#171 (comment) then it is clear our overview is not a substitute.

But I don't think we want to document using the login API to recreate SSO at this time (which would require sifting through those comments, making an example app, etc).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* This guide uses the hosted login pages. If you are using the Login API and building your own pages, [see our Login API Overview](/docs/lifecycle/authenticate-users/login-api/) for guidance.
* This guide uses the hosted login pages.

So I'd suggest this.

* The [Logout and Sessions Guide](/docs/lifecycle/authenticate-users/logout-session-management) has more information about session management options beyond using the built in SSO session.
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,3 @@ To set a self service form, click under <strong>Applications-> Edit Application
<img src="/img/docs/lifecycle/manage-users/account-management/add-form-account.png" alt="Edit Application Screen - Registrations" width="1200" />

Select the form you would like to use. A default form is shipped with FusionAuth.

## Trapped In The Login Screen

If the user unchecks the <InlineField>Remember me</InlineField> checkbox, or if the checkbox is hidden and defaults to `false`, the user will not be able to view account management pages. Instead, the user will be continuously asked to log in, and no longer how many times they do so, they will never arrive at the self-service account management pages.

This is because these pages use the SSO session managed by FusionAuth. If the user opts out of the SSO session by unchecking <InlineField>Remember me</InlineField>, the SSO session is disabled, and these pages are no longer available.

There is a discussion in [GitHub Issue 1546](https://github.com/FusionAuth/fusionauth-issues/issues/1546) on modifying the implementation of the self-service account management pages to remove dependency on the SSO session, which would remove the requirement for users to check <InlineField>Remember me</InlineField> on the login screen.
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ To double-check your users, click on <strong>Users -> Search Bar</strong> and us

**Question**: What if I have accidentally/inadvertently imported users with a `verified: false` value (either on the user or application registration)? In other words, can I do this manually.

**Answer**: Currently, there is no way to change this value manually. However, there is an open issue adding this functionality. Please upvote if you believe this is needed.
**Answer**: Currently, there is no way to change this in the Admin UI. However, there is an [open issue](https://github.com/FusionAuth/fusionauth-issues/issues/2897) adding this functionality. Please upvote if you believe this is needed.

https://github.com/FusionAuth/fusionauth-issues/issues/1319
You can currently set `user.verified` within the [user API](/docs/apis/users).

**Question**: What does it mean to enable both registration and email gates and verification paths?

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,7 @@ FA_HOST=...
curl -H "Authorization: $API_KEY" $FA_HOST'/api/user/search?queryString=data.migrated%3Atrue%0A'
```

This will return all the users who've been migrated as well as a count, subject to the limits of FusionAuth's Elasticsearch integration. See this [GitHub issue](https://github.com/FusionAuth/fusionauth-issues/issues/494) for more on those limits. Here's an example of the output:
This will return all the users who've been migrated as well as a count, subject to the limits of FusionAuth's Elasticsearch integration. See [Maximum Users Returned Workarounds](/docs/get-started/core-concepts/limitations#maximum-users-returned-workarounds) for how to get more from search. Here's an example of the output:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This will return all the users who've been migrated as well as a count, subject to the limits of FusionAuth's Elasticsearch integration. See [Maximum Users Returned Workarounds](/docs/get-started/core-concepts/limitations#maximum-users-returned-workarounds) for how to get more from search. Here's an example of the output:
This will return all the users who've been migrated as well as a count, subject to the limits of FusionAuth's Elasticsearch integration. Prior to version 1.48.0, there were limits on the number of users returned [which required workarounds](/docs/get-started/core-concepts/limitations#maximum-users-returned-workarounds). After version 1.48.0, [use pagination to retrieve all users](/docs/lifecycle/manage-users/search/search#extended-pagination).
Here's an example of the output:


```json title="Results of the FusionAuth migrated user query"
{"total":629,"users": [ ... ] }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ If your user uses TOTP for MFA, where they provide a one time code provided by a

If your users use a different method unsupported by FusionAuth, then you should map the Auth0 method to a FusionAuth method.

* WebAuthn: [Follow this issue to see the status of FusionAuth WebAuthn support](https://github.com/FusionAuth/fusionauth-issues/issues/77).
* WebAuthn: [Authentication With WebAuthN & Passkeys](/docs/lifecycle/authenticate-users/passwordless/webauthn-passkeys).
* Push Notifications: It is possible a [Generic Messenger](/docs/customize/email-and-messages/generic-messenger) would work, but this would require some investigation and custom coding.
* Voice: A [Generic Messenger](/docs/customize/email-and-messages/generic-messenger) integrated with a solution like [Twilio Voice](https://www.twilio.com/docs/voice) should work.
* Cisco Duo: A [Generic Messenger](/docs/customize/email-and-messages/generic-messenger) integrated with a solution like [Twilio Voice](https://www.twilio.com/docs/voice) could work.
Expand Down
Loading
Loading