Don't crash if auth0 credentials are missing

I'm setting up the app in a fresh box, and I noticed that the Auth0 credentials are an immediate crasher if not present. That doesn't seem ideal to me for something only used in support actions! I'd rather just have that support mutation crash, if we happen to call it.
This commit is contained in:
Emi Matchu 2021-04-12 18:05:00 -07:00
parent b80149440d
commit 4cb47f3c7c

View file

@ -11,12 +11,23 @@ import {
normalizeRow, normalizeRow,
} from "../util"; } from "../util";
const auth0 = new ManagementClient({ let auth0;
/**
* Get an Auth0 client. Raises a runtime error if connection fails. (That way,
* we don't crash on server startup, just for this Support-only feature!)
*/
function getAuth0() {
if (!auth0) {
auth0 = new ManagementClient({
domain: "openneo.us.auth0.com", domain: "openneo.us.auth0.com",
clientId: process.env.AUTH0_SUPPORT_CLIENT_ID, clientId: process.env.AUTH0_SUPPORT_CLIENT_ID,
clientSecret: process.env.AUTH0_SUPPORT_CLIENT_SECRET, clientSecret: process.env.AUTH0_SUPPORT_CLIENT_SECRET,
scope: "read:users update:users", scope: "read:users update:users",
}); });
}
return auth0;
}
const typeDefs = gql` const typeDefs = gql`
type RemoveLayerFromItemMutationResult { type RemoveLayerFromItemMutationResult {
@ -838,7 +849,7 @@ const resolvers = {
// I'm not going to bother to write recovery code; in that case, the // I'm not going to bother to write recovery code; in that case, the
// error will reach the support user console, and we can work to manually // error will reach the support user console, and we can work to manually
// fix it. // fix it.
await auth0.users.update( await getAuth0().users.update(
{ id: `auth0|impress-${userId}` }, { id: `auth0|impress-${userId}` },
{ username: newUsername } { username: newUsername }
); );