Passwordless Login
Simplified authentication for quick annotation studies and testing.
Passwordless Login
Potato supports passwordless authentication for low-stakes annotation tasks where security is less critical than ease of access. This allows annotators to log in with just a username, without requiring a password.
Overview
Passwordless login is useful when:
- Running quick annotation studies with volunteers
- Conducting internal team annotation sessions
- Testing annotation configurations
- Working with crowdsourcing platforms that handle authentication externally
- Running classroom exercises or demos
Configuration
Enable passwordless login by setting require_password: false:
require_password: false
# Optional: Specify authentication method
authentication:
method: in_memory # DefaultAuthentication Methods
Potato supports three authentication backends, all compatible with passwordless mode:
In-Memory (Default)
Users are stored in memory only. Data is lost when the server restarts.
require_password: false
authentication:
method: in_memoryDatabase
Users are persisted to a database:
export POTATO_DB_CONNECTION="sqlite:///users.db"require_password: false
authentication:
method: databaseClerk SSO
Integration with Clerk for enterprise single sign-on:
export CLERK_API_KEY="your_api_key"
export CLERK_FRONTEND_API="your_frontend_api"authentication:
method: clerkHow It Works
With Passwordless Enabled
- User visits the login page
- User enters only their username
- System creates or authenticates the user without password verification
- User proceeds to annotation
User Registration
In passwordless mode:
- New users are automatically registered on first login
- Only the username is required
- Additional user data (if configured) is still collected
Security Considerations
Passwordless mode provides minimal security:
- No identity verification: Anyone can claim any username
- Session hijacking: Sessions can be easily impersonated
- No audit trail integrity: User actions cannot be cryptographically verified
Recommended uses:
- Internal team annotation
- Classroom exercises
- Quick prototyping
- Platforms with external authentication (Prolific, MTurk)
Not recommended for:
- Sensitive data annotation
- Medical or legal annotation tasks
- Tasks requiring verified annotator identity
- Long-running studies with incentives
User Configuration File
Even in passwordless mode, you can pre-register users:
authentication:
user_config_path: users.jsonlusers.jsonl:
{"username": "annotator1"}
{"username": "annotator2"}
{"username": "admin", "role": "admin"}Migration
From Password-Required to Passwordless
- Update configuration:
yaml
require_password: false - Existing users can still log in with or without their password
From Passwordless to Password-Required
- Update configuration:
yaml
require_password: true - Existing passwordless users will need to register with a password
Complete Example
annotation_task_name: "Quick Annotation Task"
# Enable passwordless login for easy access
require_password: false
# Use database backend to persist users
authentication:
method: database
# Task configuration
data_files:
- data/instances.json
item_properties:
id_key: id
text_key: text
annotation_schemes:
- name: sentiment
annotation_type: radio
labels: [Positive, Negative, Neutral]
description: "Select the sentiment"Troubleshooting
Users Can't Log In
Check that:
require_password: falseis set in the configuration- The authentication backend is properly initialized
- There are no conflicting authentication settings
User Data Not Persisting
If using in_memory backend:
- User data is lost on server restart
- Switch to
databasebackend for persistence
Duplicate Username Errors
In passwordless mode, users trying to register with an existing username are simply logged in as that user. This is by design for ease of use.
Further Reading
- User Management - User management features
- Crowdsourcing Integration - Platform integration
For implementation details, see the source documentation.