Subprocessors

Last updated: October 8, 2026

Night Lite USA LLC (doing business as ACE Regulatory) uses the services below to run the product. This list is taken from the application code and its configuration. An entry marked "when configured" runs only if the matching setting is present; it is not active in every deployment. We will give customers reasonable advance notice before adding a subprocessor that changes how personal data is processed.

Application hosting and database

  • Railway — hosts the web application. The container build and the platform environment variables the app reads are documented in the repository. Purpose: compute.
  • PostgreSQL, via InsForge in the documented production connection — account, workspace, and lead records are stored in Postgres (DATABASE_URL). The application code states that production connects as InsForge's database role. A Prisma-managed database is the other layout the startup script supports. Purpose: application database.

Email, payments, and sign-in

  • Resend — when RESEND_API_KEY is set, verification, password-reset, and invitation messages are sent through Resend's API (https://api.resend.com/emails). The default From address is ACE Regulatory <no-reply@ace-regulatory.com> unlessEMAIL_FROM overrides it. If the key is unset, those messages are not sent. Purpose: transactional email.
  • Stripe — when the Stripe keys are set, checkout and the billing portal run on Stripe. Card numbers are collected by Stripe. Purpose: payments.
  • Google — Google sign-in, when AUTH_GOOGLE_ID and AUTH_GOOGLE_SECRET are set. Google Analytics 4 loads only after analytics consent (measurement id from NEXT_PUBLIC_GA_ID, with a fallback id in the client). Google Tag Manager loads only when NEXT_PUBLIC_GTM_ID is set and analytics consent was given. Purpose: authentication, and measurement when you allow it. Apple sign-in is implemented in the code and is not offered unless its own credentials are set; they are not part of the default configuration.

When configured

  • Sentry — error reports, when SENTRY_DSN or NEXT_PUBLIC_SENTRY_DSN is set. The client and server configuration set sendDefaultPii to false. Purpose: error monitoring.
  • Anthropic — chat messages and gap-analysis text are posted to https://api.anthropic.com whenANTHROPIC_API_KEY is set. Purpose: model responses.
  • InsForge model gateway — the same kinds of text are posted to the configured InsForge AI base URL when INSFORGE_API_KEY is set. Purpose: model responses.
  • OpenAI-compatible model endpoint (Ollama) — used when OLLAMA_API_KEY orOLLAMA_BASE_URL is set. A local endpoint is our own process, not a third party. A hosted endpoint is a subprocessor. Purpose: model responses.
  • Upstash — Redis used for rate limits when UPSTASH_REDIS_REST_URL andUPSTASH_REDIS_REST_TOKEN are both set. Limit keys can include a client IP address. When they are unset, limits stay in the application process. Purpose: abuse prevention.
  • Workflow automation for contact leads — each accepted contact-form submission is stored in the application database and also POSTed to the webhook in SAAS_SIGNUP_WEBHOOK_URL. That endpoint is an n8n workflow we operate for lead handling. It is not a separate marketing platform. Purpose: routing contact-form messages to the operator.
  • Operator SIEM — security events may be POSTed to a Wazuh-compatible API whenWAZUH_API_URL is set. The endpoint is one we configure. Purpose: security logging.

Questions about this list, or a request for the data processing addendum, go through our contact form. The privacy policy is at /privacy-policy.