Authentication Overview
DeepWiki-Open uses a multi-layered authentication approach:Environment-Based Auth
API provider keys configured via environment variables
Authorization Mode
Optional secret code protection for wiki generation
Repository Tokens
Personal access tokens for private repository access
Request Validation
Input validation and rate limiting protection
Environment-Based Authentication
API Provider Authentication
The API automatically validates configured AI provider credentials:Authentication Status
Check overall authentication status:Authorization Mode
Optional access control requiring a secret code for wiki generation.Enabling Authorization Mode
1
Configure Environment
Set authorization environment variables:
Choose a strong, unique authorization code. This provides basic access control.
2
Restart API Server
Authorization mode requires a server restart:
Server logs should show: “Authorization mode: ENABLED”
3
Verify Configuration
Using Authorization Mode
When authorization is enabled, all wiki generation requests must include the auth code:Authorization Validation
Test authorization codes before use:Repository Access Tokens
For accessing private repositories, provide personal access tokens.Supported Platforms
Token creation:
- Go to GitHub Settings → Developer settings → Personal access tokens
- Generate new token (classic or fine-grained)
- Select scopes:
repo
(full repository access)
ghp_xxxxxxxxxxxxxxxxxxxx
(classic) or github_pat_xxxx
(fine-grained)Usage in requests:Token Validation
Validate repository access tokens:Security Best Practices
Environment Security
API Key Management
API Key Management
Secure storage:Key rotation:Monitoring:
Network Security
Network Security
HTTPS configuration:Firewall rules:
Request Validation
Request Validation
Input sanitization:Rate limiting:
Production Security
1
Authentication Hardening
2
Access Control
3
Monitoring & Alerting
Error Handling
Authentication Errors
Token Validation Errors
Expired Tokens
Expired Tokens
- Generate new personal access token
- Update request with new token
- Consider using longer-lived tokens for automation
Insufficient Permissions
Insufficient Permissions
- Create new token with correct scopes
- For GitHub: include
repo
scope for private repositories - For GitLab: include
read_repository
scope