Skip to main content

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

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fyi_cli-1.0.0.tar.gz (102.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fyi_cli-1.0.0-py3-none-any.whl (67.3 kB view details)

Uploaded Python 3

File details

Details for the file fyi_cli-1.0.0.tar.gz.

File metadata

  • Download URL: fyi_cli-1.0.0.tar.gz
  • Upload date:
  • Size: 102.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for fyi_cli-1.0.0.tar.gz
Algorithm Hash digest
SHA256 909a82b50a874780a2cc735bea5742191e2bde0eda42b9cbb1ceecc5acc23751
MD5 0f5558d95986e1b308032aa7116394f5
BLAKE2b-256 c2d872e653683526ec3581dc275c5fa607f898e33892b4a0fbed3585c2baedb2

See more details on using hashes here.

File details

Details for the file fyi_cli-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: fyi_cli-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 67.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for fyi_cli-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a425014483e305948e95d466bf33a6c2c2b1bbf0023d3398c8550a4210d6b6c8
MD5 7884663ee1803d710257f0a25dc8242e
BLAKE2b-256 de8ab2ac12e255433e61dd96138c0b0faa43dc23d95b1bd92382ebaaca358d46

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page