Skip to content

edithatogo/fyi-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

FYI CLI

Privacy-focused CLI tool for managing FYI.org.nz official information requests

PyPI version Python Support License: MIT CI Codecov


πŸš€ 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


πŸ“ž Support


Made with ❀️ for transparency and privacy

About

Privacy-focused CLI tool for managing FYI.org.nz official information requests

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors