UNPKG

@dataroadinc/setup-auth

Version:

CLI tool and programmatic API for automated OAuth setup across cloud platforms

56 lines (55 loc) 2.87 kB
import { EKG_PROJECT_LONG, GCP_OAUTH_BRAND_NAME, } from "../../../utils/env-handler.js"; import { SetupAuthError } from "../../../utils/error.js"; export async function checkOptions(options) { const platform = options.platform || process.env.PLATFORM; if (!platform) { throw new SetupAuthError("Platform type must be provided via --platform or PLATFORM env var."); } if (!["vercel", "netlify", "opennext"].includes(platform)) { throw new SetupAuthError(`Invalid platform specified: ${platform}. Valid options are 'vercel', 'netlify', 'opennext'.`); } options.platform = platform; console.log(`Platform: ${platform}`); const projectId = options.gcpOauthProjectId || process.env.GCP_PROJECT_ID; if (!projectId) { throw new SetupAuthError("GCP Project ID must be provided via --gcp-oauth-project-id or GCP_PROJECT_ID env var."); } options.gcpOauthProjectId = projectId; console.log(`Using explicitly provided GCP project ID: ${projectId}`); const organizationId = options.gcpOauthOrganizationId || process.env.GCP_ORGANIZATION_ID; if (!organizationId) { throw new SetupAuthError("GCP Organization ID must be provided via --gcp-oauth-organization-id or GCP_ORGANIZATION_ID env var."); } options.gcpOauthOrganizationId = organizationId; console.log(`Using explicitly provided GCP organization ID: ${organizationId}`); let oauthBrandName = options.oauthBrandName; if (!oauthBrandName) { oauthBrandName = process.env[GCP_OAUTH_BRAND_NAME]; if (oauthBrandName) { console.log(`Using GCP OAuth Brand Name from environment variable ${GCP_OAUTH_BRAND_NAME}: ${oauthBrandName}`); } else { oauthBrandName = process.env[EKG_PROJECT_LONG]; if (oauthBrandName) { console.log(`Using Brand Name from environment variable ${EKG_PROJECT_LONG}: ${oauthBrandName}`); } else { throw new SetupAuthError(`Could not determine brand name. Please set --oauth-brand-name option, ` + `or set ${GCP_OAUTH_BRAND_NAME} or ${EKG_PROJECT_LONG} in your environment.`); } } } options.oauthBrandName = oauthBrandName; console.log(`Using OAuth Brand Name: ${oauthBrandName}`); if (options.platform === "vercel") { const vercelProjectName = options.vercelProjectName || process.env.VERCEL_PROJECT_NAME; if (!vercelProjectName) { throw new SetupAuthError("Vercel project name must be provided via --vercel-project-name or VERCEL_PROJECT_NAME env var for Vercel platform."); } options.vercelProjectName = vercelProjectName; console.log(`Using specified Vercel project name: ${vercelProjectName}`); } else { options.vercelProjectName = undefined; } }