Secure your integration with Euriqa using API keys for CI/CD pipelines or session-based authentication for the dashboard.
Euriqa supports two authentication methods. Both enforce the same authorization rules, including row-level security and role-based access control.
| Method | Header | Use Case |
|---|---|---|
| API Key | X-API-Key | CI/CD pipelines, scripts, programmatic access |
| Session Cookie | Cookie | Browser-based dashboard access |
API keys are the recommended way to authenticate CI/CD pipelines and programmatic access to the Euriqa platform. Each key is scoped to a specific project for isolation.
API keys must be a minimum of 16 characters. Euriqa validates key format on every request and rejects placeholder values such as your-api-key or test-key.
Every API key is scoped to a single project. This means a key can only access data belonging to the project it was generated for. Keys cannot access data from other projects or teams.
Via the Dashboard: Navigate to your project settings at app.euriqa.dev and click "Generate API Key". Give each key a descriptive name (e.g., "GitHub Actions", "GitLab CI", "Local Dev").
Via the API:
curl -X POST https://app.euriqa.dev/api/api-keys \
-H "Content-Type: application/json" \
-H "Cookie: <session-cookie>" \
-d '{
"name": "GitHub Actions",
"projectId": "your-project-id",
"expiresAt": "2026-12-31T00:00:00Z"
}'API keys can be activated or deactivated without deleting them. This is useful for temporarily disabling access without losing the key configuration. You can also set optional expiration dates for added security.
namestringRequiredprojectIdstringRequiredexpiresAtstringisActivebooleanlastUsedAtstringInclude your API key in the X-API-Key header with every request:
curl https://app.euriqa.dev/api/runs \
-H "X-API-Key: your-api-key"For the Playwright reporter, set the key as an environment variable:
export EURIQA_API_KEY=your-api-key
export EURIQA_PROJECT_ID=your-project-id
npx playwright testThe reporter SDK validates API keys before making any network calls. Validation checks include:
User authentication is handled via Supabase Auth with email/password credentials. Sessions are managed automatically in the browser.
Create an account at app.euriqa.dev/signup. Email verification is mandatory before you can access the platform. After verifying your email, the onboarding wizard will guide you through creating your first team and project.
POST https://app.euriqa.dev/auth/signup
Content-Type: application/json
{
"email": "you@company.com",
"password": "your-secure-password"
}Sign in with your email and password. A session cookie is set automatically for subsequent requests.
POST https://app.euriqa.dev/auth/login
Content-Type: application/json
{
"email": "you@company.com",
"password": "your-secure-password"
}Request a password reset email. A secure reset link will be sent to the email address on file.
POST https://app.euriqa.dev/auth/forgot-password
Content-Type: application/json
{
"email": "you@company.com"
}Every team member is assigned a role that determines what actions they can perform. Roles are enforced at both the API and database levels.
| Role | Capabilities |
|---|---|
| Owner | Full control over team, members, and all projects. Can delete the team. |
| Admin | Manage team members, create projects, manage project settings. |
| Member | Create projects, view all team data, invite users. |
| Viewer | Read-only access to projects and test results. |
All data access in Euriqa is controlled at the database level using Supabase Row-Level Security (RLS). This means authorization is enforced regardless of how the data is accessed — through the dashboard, API, or direct database queries.