Open-source compliance scanner for African data protection laws โ NDPA, Ghana DPA, Kenya DPA, Rwanda Law 058, Egypt PDPL and more
Project description
Kijiji-Guard ๐ก๏ธ
The Open-Source Compliance Scanner Built for Africa
Securing Africa's next unicorns โ without the dollar-denominated security tax.
Kijiji-Guard is a lightweight, open-source Security-as-Code framework that automatically scans your infrastructure for compliance with African data protection regulations. No expensive foreign tools. No Checkov dependency. No complex setup. Just run a scan and know exactly where you stand.
Why Kijiji-Guard?
African startups are legally required to comply with local data protection laws โ but every compliance tool on the market was built for GDPR, not NDPA. Kijiji-Guard changes that.
- African-first: Built specifically for NDPA 2023, Ghana DPA 2012, Kenya DPA 2019, Rwanda Law 058/2021, Cรดte d'Ivoire Loi 2013-450, Bรฉnin Loi 2017-20, and Egypt PDPL 2020
- Multi-platform: Scans Terraform/IaC files, live Vercel projects, and Supabase databases โ not just AWS
- Instant setup: No Checkov, no heavy dependencies. Six packages. Installs in 10 seconds.
- Open source: Apache 2.0. Free forever for the community.
- Real enforcement context: NDPC issued compliance notices to 1,368 Nigerian organizations in 2025. Fines reach โฆ10M or 2% annual revenue.
Supported Regulations
| Country | Regulation | Governing Body | Checks |
|---|---|---|---|
| ๐ณ๐ฌ Nigeria | NDPA 2023 + NDPC GAID 2025 | NDPC | 6 |
| ๐ฌ๐ญ Ghana | Data Protection Act 2012 (Act 843) | DPC | 5 |
| ๐ฐ๐ช Kenya | Data Protection Act 2019 | ODPC | 6 |
| ๐ท๐ผ Rwanda | Law No.058/2021 | NCSA | 5 |
| ๐จ๐ฎ Cรดte d'Ivoire | Loi nยฐ2013-450 | ARTCI | 5 |
| ๐ง๐ฏ Bรฉnin | Loi nยฐ2017-20 | CRIET | 5 |
| ๐ช๐ฌ Egypt | PDPL Law No.151/2020 + Exec Regs 2025 | PDPC | 6 |
Total: 38 compliance checks across 7 African countries
What It Scans
Tier 1 โ Infrastructure as Code Terraform (.tf files), Kubernetes YAML, CloudFormation. Point Kijiji-Guard at any IaC directory and get instant compliance findings mapped to the exact section of each law.
Tier 2 โ PaaS Platforms Vercel and Supabase โ the platforms most African startups actually use. Connect your API token and scan your live projects in seconds.
Tier 3 โ Live Cloud APIs (coming soon) AWS, GCP, Azure, DigitalOcean. Connect your cloud account and scan live infrastructure directly โ no IaC needed.
Quick Start
Install
pip install kijiji-guard
Scan a Terraform project
# Scan against Nigeria NDPA 2023
kijiji-guard scan --target ./infra --country nigeria
# Scan against all 7 African countries at once
kijiji-guard scan --target ./infra --country all
# Scan a public GitHub repo (clone first)
git clone https://github.com/terraform-aws-modules/terraform-aws-s3-bucket
kijiji-guard scan --target terraform-aws-s3-bucket --country all
Scan your Vercel project
kijiji-guard scan --target vercel --country nigeria --vercel-token YOUR_TOKEN
Scan your Supabase project
kijiji-guard scan --target supabase --country kenya --supabase-token YOUR_TOKEN
Monitor regulatory updates (KijijiWatch)
kijiji-guard watch --country nigeria
kijiji-guard watch --country all
Launch the web dashboard
# Terminal 1 โ API server
pip install "kijiji-guard[dashboard]"
kijiji-guard-api
# Terminal 2 โ Dashboard UI
cd dashboard && npm install && npm run dev
# Open: http://localhost:5173
All CLI Commands
scan โ Scan infrastructure for compliance
py cli/main.py scan [OPTIONS]
Options:
--target TEXT Path to .tf file, directory, or platform name
Values: file path | vercel | supabase | aws |
gcp | azure | digitalocean | auto
--country TEXT Country regulation to check against
Values: nigeria | ghana | kenya | rwanda |
cote-divoire | benin | egypt | all
Default: nigeria
--output TEXT Output format: console | json | html
Default: console
--vercel-token TEXT Vercel API token (for --target vercel)
--supabase-token TEXT Supabase access token (for --target supabase)
--aws-key TEXT AWS Access Key ID (for --target aws)
--aws-secret TEXT AWS Secret Access Key (for --target aws)
--aws-region TEXT AWS region (default: af-south-1)
--do-token TEXT DigitalOcean API token
Examples:
# IaC scan
py cli/main.py scan --target sample_startup.tf --country nigeria
py cli/main.py scan --target ./infra --country all
py cli/main.py scan --target ./infra --country kenya --output json
# Vercel scan
py cli/main.py scan --target vercel --country nigeria \
--vercel-token YOUR_TOKEN
# Supabase scan
py cli/main.py scan --target supabase --country ghana \
--supabase-token YOUR_TOKEN
# Scan a public GitHub repo (clone first)
git clone https://github.com/terraform-aws-modules/terraform-aws-s3-bucket
py cli/main.py scan --target terraform-aws-s3-bucket --country all
watch โ Monitor regulatory updates (KijijiWatch)
py cli/main.py watch [OPTIONS]
Options:
--country TEXT Country to monitor
Values: nigeria | ghana | kenya | rwanda |
cote-divoire | benin | egypt | all
Default: nigeria
--all Show all updates including previously seen ones
--output TEXT Output format: console | json
Default: console
Examples:
py cli/main.py watch --country nigeria
py cli/main.py watch --country all
py cli/main.py watch --country egypt --output json
py cli/main.py watch --country nigeria --all
Example Output
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Kijiji-Guard Compliance Scan โ
โ Target: terraform-aws-s3-bucket | Country: All | Scanners: iac โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Check ID Name Result Regulation
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
CKV_NGR_001 Data residency โ non-African region FAILED NDPA ยง41
CKV_NGR_002 No data retention lifecycle rule FAILED NDPA ยง24
CKV_NGR_003 S3 encryption at rest not configured FAILED NDPA ยง34
CKV_NGR_004 No CloudTrail โ breach detection FAILED NDPA ยง40
CKV_NGR_005 S3 bucket may allow public access FAILED NDPA ยง41
CKV_GHA_001 S3 encryption at rest not configured FAILED Ghana DPA ยง28
CKV_GHA_002 IAM policy has no wildcard actions PASSED Ghana DPA ยง22
CKV_KEN_003 Data outside Africa WARN Kenya DPA ยง48
CKV_RWA_002 Strict data localisation violation FAILED Rwanda Art.50
CKV_RWA_003 No CloudTrail โ 48hr breach impossible FAILED Rwanda Art.34
CKV_EGY_002 No CloudTrail โ 72hr breach impossible FAILED Egypt PDPL Art.23
CKV_EGY_003 Potential cross-border data transfer FAILED Egypt PDPL Art.27
Summary: 7 passed ยท 26 failed ยท 2 warnings ยท Pass rate: 20.59%
Fix violations before your next compliance audit cycle.
KijijiWatch Output
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ KijijiWatch โ Regulatory Intelligence ๐ณ๐ฌ Nigeria โ
โ 3 updates found | 3 new โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Severity Category Authority Title
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
HIGH DEADLINE NDPC 2025 DPCAR Audit Returns Due โ 30 May 2026
HIGH ENFORCEMENT NDPC 1,368 Organizations Issued Compliance Notices
HIGH INVESTIGATION NDPC NDPC Investigating Temu for NDPA Violations
HIGH: 3 items requiring immediate attention
Review these updates before your next audit cycle.
Project Structure
kijiji-guard/
โโโ cli/ # Python scanner engine
โ โโโ main.py # CLI entry point (all commands)
โ โโโ api_server.py # FastAPI server for dashboard
โ โโโ requirements.txt # Python dependencies
โ โโโ core/
โ โ โโโ orchestrator.py # Routes scans to correct adapter
โ โ โโโ watcher.py # KijijiWatch regulatory monitor
โ โ โโโ report.py # Terminal, JSON, HTML output
โ โโโ adapters/
โ โโโ iac/ # IaC scanner (python-hcl2)
โ โ โโโ policies/ # Country policy classes
โ โ โโโ nigeria.py # 6 NDPA checks
โ โ โโโ ghana.py # 5 Ghana DPA checks
โ โ โโโ kenya.py # 6 Kenya DPA checks
โ โ โโโ rwanda.py # 5 Rwanda Law checks
โ โ โโโ cote_divoire.py # 5 Loi 2013-450 checks
โ โ โโโ benin.py # 5 Loi 2017-20 checks
โ โ โโโ egypt.py # 6 Egypt PDPL checks
โ โโโ api/ # Live cloud API scanners (coming soon)
โ โ โโโ aws_adapter.py
โ โ โโโ gcp_adapter.py
โ โ โโโ azure_adapter.py
โ โโโ paas/ # PaaS platform scanners
โ โ โโโ vercel_adapter.py # 5 Vercel checks (functional)
โ โ โโโ supabase_adapter.py # 6 Supabase checks (functional)
โ โโโ watch/ # KijijiWatch country monitors
โ โโโ nigeria.py # NDPC + CBN + NCC
โ โโโ ghana.py # Ghana DPC
โ โโโ kenya.py # Kenya ODPC
โ โโโ rwanda.py # Rwanda NCSA
โ โโโ egypt.py # Egypt PDPC
โ โโโ benin.py # Bรฉnin CRIET
โ โโโ cote_divoire.py # Cรดte d'Ivoire ARTCI
โโโ src/ # React + Vite web dashboard
โ โโโ components/
โ โโโ Overview.tsx # Compliance score + findings
โ โโโ RunScan.tsx # Scan form + live results
โ โโโ Findings.tsx # Filterable findings table
โ โโโ Watch.tsx # KijijiWatch alerts
โ โโโ History.tsx # Past scans
โ โโโ Regulations.tsx # Country regulation info
โ โโโ ExportReport.tsx # Download JSON/HTML report
โโโ terraform/ # Reference compliant IaC templates
โ โโโ main.tf
โโโ sample_startup.tf # Demo non-compliant Terraform file
โโโ .env.example # Environment variable reference
Environment Variables
Create a .env file in the root (see .env.example):
# Vercel
VERCEL_TOKEN=your_vercel_token_here
# Supabase
SUPABASE_ACCESS_TOKEN=your_supabase_token_here
# AWS (for live API scanning โ coming soon)
AWS_ACCESS_KEY_ID=your_key_here
AWS_SECRET_ACCESS_KEY=your_secret_here
AWS_DEFAULT_REGION=af-south-1
# GCP
GOOGLE_APPLICATION_CREDENTIALS=path/to/service-account.json
# Azure
AZURE_SUBSCRIPTION_ID=your_subscription_id
AZURE_CLIENT_ID=your_client_id
AZURE_CLIENT_SECRET=your_client_secret
# DigitalOcean
DIGITALOCEAN_TOKEN=your_do_token_here
Roadmap
- IaC scanning โ Terraform/HCL (7 countries, 38 checks)
- PaaS scanning โ Vercel (5 checks) + Supabase (6 checks)
- KijijiWatch โ regulatory intelligence monitor
- Web dashboard with compliance overview + export
- HTML auditor report export
- CLI credential flags (--vercel-token, --supabase-token etc)
-
pip install kijiji-guardpackage release - Live AWS/GCP/Azure API scanning
- GitHub Action for CI/CD compliance gates
- Docker image for zero-install usage
- South Africa POPIA support
- Senegal + Tanzania regulations
- French regulation summaries (Francophone West Africa)
Contributing
We welcome contributions from African developers and security researchers.
Priority areas:
- GCP and Azure IaC policy checks
- New country regulations (South Africa POPIA, Senegal, Tanzania)
- PaaS adapters for Firebase, Render, Railway
- French translations of regulation summaries
See docs/contributing.md to get started.
Built for AfricaCyberFest 2026
Kijiji-Guard was built for the AfricaCyberFest 2026 Solutions Hackathon Open Track โ a sprint to build open-source security tools for African and global challenges.
Track: Open Track โ Compliance Automation Event: Africa CyberFest 2026, Lagos, Nigeria
License
Apache 2.0 โ see LICENSE
Copyright (c) 2026 Kijiji-Guard Contributors
Kijiji (Swahili) โ "village." Security for the whole village.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kijiji_guard-0.1.0.tar.gz.
File metadata
- Download URL: kijiji_guard-0.1.0.tar.gz
- Upload date:
- Size: 42.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d24a4a4cb03061a1b6aadca26789c3f5c7fb3896b52a6d047d2e6685523761ee
|
|
| MD5 |
d0b3cbcd33c3488778cc8b93089372c8
|
|
| BLAKE2b-256 |
634fa2fe447da61eb06f421eb88c38c76e88e89254c1a80ac6d1000056145857
|
File details
Details for the file kijiji_guard-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kijiji_guard-0.1.0-py3-none-any.whl
- Upload date:
- Size: 65.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42ee27e70e489a2b1ff381c010aef44b954e28822a541a4370b9a1d9c318f8d1
|
|
| MD5 |
3b6155a636ee7b6b3546cb15dd04a82c
|
|
| BLAKE2b-256 |
01191e0c67add19173cdc833b4635a4a3fce3dcb7f720b5d74aea837359c2d3d
|