FYI CLI
Privacy-focused CLI tool for managing FYI.org.nz official information requests
🚀 Quick Start
# Install
pip install fyi-cli
# Initialize
fyi init-db
# Create your first request
fyi register-request ministry-of-justice "OIA Request" "Request body..." --status draft
# Generate submission URL
fyi build-prefilled-url 1
# Track and manage requests
fyi list-requests
fyi dashboard --output dashboard.html
Full guide: QUICKSTART.md
✨ Features
- 🔒 Privacy-First: All data stored locally, optional encryption
- 📊 Track Requests: Monitor OIA requests from creation to completion
- 🤖 Automated Monitoring: Watch FYI.org.nz for updates automatically
- 📈 Reports & Analytics: Generate dashboards, attention reports, handover docs
- 🔐 Secure Storage: Encrypted credentials, OS keyring integration
- 🌐 Alaveteli Compatible: Works with any Alaveteli instance (FYI, WDTK, FDS)
- 💻 CLI + Web UI: Command-line and web interface options
- 📦 Export Options: JSON, CSV, HTML, PDF export capabilities
📦 Installation
From PyPI (Recommended)
pip install fyi-cli
Standalone Executables
Download from Releases:
- Windows:
fyi-cli-win.exe - macOS:
fyi-cli-macos - Linux:
fyi-cli-linux
From Source
git clone https://github.com/yourusername/fyi-cli.git
cd fyi-cli
pip install -e ".[dev]"
Full installation guide: INSTALL.md
📖 Documentation
| Document | Description |
|---|---|
| QUICKSTART.md | 5-minute getting started guide |
| USER_GUIDE.md | Comprehensive user documentation |
| INSTALL.md | Installation guide (Windows/Mac/Linux) |
| API_KEY_SETUP.md | How to get and configure API key |
| CONFIGURATION.md | Configuration reference |
| TROUBLESHOOTING.md | Troubleshooting guide |
| FAQ.md | Frequently asked questions |
| CHANGELOG.md | Version history |
| CONTRIBUTING.md | How to contribute |
🛡️ Security
Reporting a Vulnerability
Please do NOT report security vulnerabilities through public GitHub issues.
Report security issues to: security@fyi-cli.example.com
Or use GitHub's private vulnerability reporting:
https://github.com/yourusername/fyi-cli/security/advisories/new
Security Policy: SECURITY.md
Security Features
- ✅ AES-256-GCM encryption for sensitive data
- ✅ PBKDF2-HMAC-SHA256 key derivation
- ✅ OS keyring integration for credential storage
- ✅ Tamper-evident audit logging
- ✅ Secure session management
- ✅ Input validation and sanitization
- ✅ Security headers (CSP, HSTS, X-Frame-Options)
- ✅ Automated security scanning (CodeQL, pip-audit, bandit)
🧪 Testing
# Run all tests
pytest
# Run with coverage
pytest --cov=fyi_system --cov-report=html
# Run specific test file
pytest tests/test_alaveteli_client.py
Test Coverage: >80% (target)
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
Quick Start for Contributors
# Fork and clone
git clone https://github.com/YOUR_USERNAME/fyi-cli.git
cd fyi-cli
# Set up development environment
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
pip install -e ".[dev]"
# Run tests
pytest
# Make your changes, then submit a PR
git commit -m "feat: Add awesome feature"
git push origin feature/awesome-feature
Code of Conduct
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
📊 Project Status
v1.0.0 Release Progress
| Phase | Status | Progress |
|---|---|---|
| Phase 1.1: Documentation | ✅ Complete | 100% |
| Phase 1.2: Packaging | ⏳ In Progress | 0% |
| Phase 1.3: UX Improvements | ⏳ Pending | 0% |
| Phase 2: Beta Release | ⏳ Pending | 0% |
| Phase 3: Public Release | ⏳ Pending | 0% |
Target Release Date: 2026-03-30
Release Plan: RELEASE_PLAN.md
🔗 Compatible Platforms
FYI CLI works with any Alaveteli-based platform:
| Platform | Region | URL |
|---|---|---|
| FYI.org.nz | New Zealand | https://fyi.org.nz |
| WhatDoTheyKnow | United Kingdom | https://www.whatdotheyknow.com |
| FragDenStaat | Germany | https://fragdenstaat.de |
| Alaveteli | Any | Self-hosted instances |
📋 CLI Commands
# Database
fyi init-db # Initialize database
fyi config show # Show configuration
# Requests
fyi register-request ... # Create new request
fyi list-requests # List all requests
fyi request-detail <id> # View request details
fyi set-status <id> <status> # Update status
# Submission
fyi build-prefilled-url <id> # Generate submission URL
# Monitoring
fyi ingest-feed <url> # Ingest RSS/Atom feed
fyi scheduler <url> # Run continuous monitoring
# Reports
fyi dashboard --output ... # Generate dashboard
fyi attention-report # Generate attention report
fyi handover --output ... # Generate handover document
# Export
fyi export-requests # Export all requests
fyi export-bundle <id> # Export request bundle
# Security
fyi privacy-audit # Privacy compliance check
fyi health-check # System health verification
Full CLI reference: See fyi --help or USER_GUIDE.md
🏗️ Architecture
┌─────────────────────────────────────────────────────────┐
│ FYI CLI │
├─────────────────────────────────────────────────────────┤
│ CLI Commands │ Web UI │ Scheduler │ Reports │
├─────────────────────────────────────────────────────────┤
│ Alaveteli API Client │
│ (Read API + Write API support) │
├─────────────────────────────────────────────────────────┤
│ SQLite Database │
│ (tracked_requests, authorities, feed_events, etc.) │
├─────────────────────────────────────────────────────────┤
│ FYI.org.nz / Alaveteli API │
└─────────────────────────────────────────────────────────┘
📜 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Built on the Alaveteli platform by mySociety
- Inspired by the transparency work of FYI.org.nz
- Uses cryptography for encryption
📞 Support
- Documentation: https://fyi-cli.readthedocs.io/
- Issues: https://github.com/yourusername/fyi-cli/issues
- Discussions: https://github.com/yourusername/fyi-cli/discussions
- Email: support@fyi-cli.example.com
Made with ❤️ for transparency and privacy
Metadata
Release files for fyi-cli 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fyi_cli-1.0.0.tar.gz | 102.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fyi_cli-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 169.3 kB
Release files / fyi_cli-1.0.0.tar.gz
| Download URL | fyi_cli-1.0.0.tar.gz |
|---|---|
| Size | 102.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
909a82b50a874780a2cc735bea5742191e2bde0eda42b9cbb1ceecc5acc23751
|
|
BLAKE2b-256 checksum How to use checksums |
c2d872e653683526ec3581dc275c5fa607f898e33892b4a0fbed3585c2baedb2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / fyi_cli-1.0.0-py3-none-any.whl
| Download URL | fyi_cli-1.0.0-py3-none-any.whl |
|---|---|
| Size | 67.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a425014483e305948e95d466bf33a6c2c2b1bbf0023d3398c8550a4210d6b6c8
|
|
BLAKE2b-256 checksum How to use checksums |
de8ab2ac12e255433e61dd96138c0b0faa43dc23d95b1bd92382ebaaca358d46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|