A free, open-source, self-hosted web application for viewing Laserfiche Cloud lookup tables.
- Browse and search Laserfiche lookup tables
- View table rows with pagination (beyond LF's UI limits)
- Server-side and client-side filtering
- Sort and paginate through large tables
- Export to CSV
- Basic table metadata
- OAuth 2.0 authentication with Laserfiche Cloud
This is a read-only edition. For write capabilities (add, edit, delete rows, CSV import), check out LFDataView Managed.
Your credentials stay with Laserfiche. This application:
- Does not store passwords - Authentication is handled entirely by Laserfiche Cloud via OAuth 2.0. Your password is never sent to or seen by this application.
- Does not have a database - No user accounts, profiles, or personal information are stored.
- Only stores a temporary access token - After you log in through Laserfiche, an encrypted access token is stored in a browser cookie for ~1 hour. This token is encrypted and cannot be read by JavaScript.
When you log out or close your browser, the token is cleared. There is no persistent user data.
- Docker and Docker Compose
- A Laserfiche Cloud account
- A registered app in the Laserfiche Developer Console
- Go to developers.laserfiche.com
- Create a new Web App
- Set Redirect URI to:
http://localhost:8000/auth/callback - Add scopes:
table.Read,project/{YOUR_PROJECT} - Save your Client ID and Client Secret
# Clone the repository
git clone https://github.com/ABEVIntegrations/lfdataview.git
cd lfdataview
# Copy the example environment file
cp backend/.env.example backend/.envEdit backend/.env with your credentials:
# Your Laserfiche app credentials
LASERFICHE_CLIENT_ID=your_client_id
LASERFICHE_CLIENT_SECRET=your_client_secret
LASERFICHE_REDIRECT_URI=http://localhost:8000/auth/callback
# Generate these keys (instructions below)
SECRET_KEY=your_secret_key
TOKEN_ENCRYPTION_KEY=your_fernet_keyGenerate the security keys:
# Generate SECRET_KEY
openssl rand -hex 32
# Generate TOKEN_ENCRYPTION_KEY
python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"docker-compose up -d- Frontend: http://localhost:3000
- API Docs: http://localhost:8000/docs (development mode only)
Click "Login with Laserfiche" to authenticate and start viewing your tables.
LFDataView uses a stateless architecture with no database required:
- Frontend: React 18, Material-UI, React Query
- Backend: FastAPI (Python 3.11)
- Auth: OAuth 2.0 tokens stored in encrypted httpOnly cookies
- Deployment: 2 Docker containers (backend + frontend)
- Self-Hosting Guide - Production deployment with HTTPS
- API Reference - Backend API endpoints
- Architecture - System design overview
| Variable | Description |
|---|---|
LASERFICHE_CLIENT_ID |
OAuth Client ID from Developer Console |
LASERFICHE_CLIENT_SECRET |
OAuth Client Secret |
LASERFICHE_REDIRECT_URI |
OAuth callback URL |
SECRET_KEY |
Signs OAuth state cookies (use openssl rand -hex 32) |
TOKEN_ENCRYPTION_KEY |
Encrypts access tokens (use Fernet.generate_key()) |
ALLOWED_ORIGINS |
CORS origins (e.g., http://localhost:3000) |
ENVIRONMENT |
development or production |
| Feature | Community Edition | Managed Edition |
|---|---|---|
| View tables | Yes | Yes |
| Search & filter | Yes | Yes |
| Pagination | Yes | Yes |
| CSV export | Yes | Yes |
| Add/Edit/Delete rows | No | Yes |
| CSV import | No | Yes |
| Bulk operations | No | Yes |
| Support | Community | Professional |
MIT License - see LICENSE