Expo
Connect Expo to Ploy to see everyone in your Expo organization, their role, and who has a pending invitation. Ploy only reads your organization: it cannot invite, change or remove anyone in Expo.
This integration is in beta
The Expo integration is in beta. Expo has no public API for organization members, so Ploy reads them through the same API that Expo's own website and command-line tool use. Expo can change that API without notice. If it does, the scan fails and shows an error; it never reads the change as people losing access.
The first step of setup is a consent checkbox. Ticking it lets Ploy send redacted error data to its own monitoring when a call to Expo fails. Redacted means secrets, tokens and personal details are removed before anything is stored. Ploy uses it only to fix problems with the integration. You need to tick it to continue.
What Ploy reads
Every member of the connected Expo organization: people who sign in to Expo directly, people who sign in through your identity provider (SSO), and robot users. Robot users are shown as service accounts.
Each member's role. Ploy shows it as an Owner, Admin, Developer, Release Manager, Runner or Viewer entitlement on the organization. A member whose permissions match none of Expo's roles is shown with access but no role.
Everyone with a pending invitation, with the role they were invited with. They show as pending until they accept.
Two-factor status for people who sign in to Expo directly. For SSO users, sign-in security is set by your identity provider.
People removed from the organization, and invitations that Expo no longer lists, lose their access in Ploy on the next scan. Expo does not record when someone last signed in, so Ploy does not show sign-in activity for Expo.
Ploy scans every six hours. A scan uses only a few requests.
What Ploy can change
Nothing. Expo only allows changes to an organization's members from someone who has just re-entered their password, and their two-factor code, in the Expo website. An access token can never do this, so no integration can invite, change or remove Expo members. Make those changes in Expo; Ploy shows them after the next scan.
Before you start
You need the access token of a robot user in your Expo organization:
Sign in to expo.dev as an owner or admin of the organization.
Switch to the organization using the account switcher at the top left.
Open Settings, then Access tokens.
Under Robot users, add a robot user. Give it a name such as "Ploy" and the Viewer role.
Create an access token for the robot user. Copy it and keep it somewhere safe. Treat it like a password.
A robot user is not a person and cannot sign in to Expo, so the connection keeps working when people join or leave. A personal access token also works, but it can reach every organization its owner belongs to and stops working if they leave, so a robot user is the better choice.
Connect Expo
In Ploy, open Integrations and choose Expo.
Tick the beta consent checkbox.
Paste the robot user's access token and continue.
Choose the organization to scan. The list shows every organization the token can reach.
Select Test. Ploy reads the organization's members to confirm the token works.
Save the connection. The first scan starts straight away.
Ploy scans one Expo organization per connection. Add another connection for another organization.
Troubleshooting
Expo did not accept that access token: check the token was copied in full and has not been deleted.
Expo refused that token for this organization: the token belongs to a robot user or person who is not a member of this organization. Create the robot user in the organization you chose.
Expo is limiting requests for this token: wait a few minutes and test again.
Expo answered, but not with the organization's members: check the token and the organization, then test again. If it keeps happening, Expo may have changed its API; contact Ploy support.