How ankit-kumar17/fossology works
FOSSology is a license-compliance toolkit and web workflow system. Users submit software through the web API or command-line tools; uploads are stored and scheduled for analysis, producing license, copyright, package, and related findings. Users then review and clear findings, manage license decisions, and generate compliance reports such as SPDX and ReadMe outputs. The graph also captures shared database/repository services and decision import/export. The README documents deduplication and CLI scans; source excerpts are partial, so uncertain internal agent dispatch details are not expanded.
Main entry points: DbManager.php FOSSology database · libfossscheduler.c Agent scheduler · libfossrepo.c File repository · libfossagent.c Agent and DB libraries
Components 23
Intake and scheduling
- Upload API
src/www/ui/api/Controllers/UploadController.php - CLI tools
src/cli/cp2foss.php - Network downloader
src/wget_agent/agent/main.c - Agent scheduler
src/lib/c/libfossscheduler.c
Software analysis
- MIME detection
src/mimetype/agent/mimetype.c - Package metadata
src/pkgagent/agent/main.c - License scanners
src/nomos/agent/nomos.c - Copyright analysis
src/copyright/agent/copyright.cc - Regex scanning
src/regexscan/agent/regexscan.c - Code reuse scan
src/scanoss/agent/main.c - File organization
src/buckets/agent/buckets.c
Compliance review
- License management
src/www/ui/api/Controllers/LicenseController.php - Decision processing
src/decider/agent/DeciderAgent.php - Decision import
src/decisionimporter/agent/decisionimporter.php - Decision export
src/decisionexporter/agent/decisionexporter.php - Finding views
src/copyright/ui/CopyrightView.php
Reports and exchange
- SPDX generation
src/cyclonedx/agent/reportgenerator.php - ReadMe notices
src/readmeoss/agent/readmeoss.php
Shared platform
- File repository
src/lib/c/libfossrepo.c - FOSSology database
src/lib/php/Db/DbManager.php - Agent and DB libraries
src/lib/c/libfossagent.c
Other components
- User
- SCANOSS service
Connections 46
- User → Upload API: submits upload
- User → CLI tools: runs scans
- Upload API → FOSSology database: records upload
- CLI tools → Agent scheduler: queues work
- Upload API → Agent scheduler: queues analysis
- Agent scheduler → Network downloader: dispatches download
- Network downloader → File repository: stores files
- Agent scheduler → MIME detection: dispatches analysis
- Agent scheduler → Package metadata: dispatches analysis
- Agent scheduler → License scanners: dispatches analysis
- Agent scheduler → Copyright analysis: dispatches analysis
- Agent scheduler → Regex scanning: dispatches analysis
- Agent scheduler → Code reuse scan: dispatches analysis
- MIME detection → File repository: reads files
- Package metadata → File repository: reads packages
- License scanners → File repository: reads files
- Copyright analysis → File repository: reads files
- Regex scanning → File repository: reads files
- Code reuse scan → SCANOSS service: requests matches
- MIME detection → FOSSology database: records findings
- Package metadata → FOSSology database: records metadata
- License scanners → FOSSology database: records findings
- Copyright analysis → FOSSology database: records findings
- Regex scanning → FOSSology database: records findings
- Code reuse scan → FOSSology database: records results
- Agent scheduler → File organization: dispatches organization
- File organization → FOSSology database: stores file groups
- User → License management: reviews licenses
- License management → FOSSology database: reads and updates
- Agent scheduler → Decision processing: dispatches decisions
- Decision processing → FOSSology database: reads and writes decisions
- Decision import → FOSSology database: imports decisions
- Decision export → FOSSology database: reads decisions
- User → Decision import: imports decisions
- User → Decision export: exports decisions
- User → SPDX generation: requests report
- SPDX generation → FOSSology database: reads compliance data
- User → ReadMe notices: requests notices
- ReadMe notices → FOSSology database: reads copyright data
- User → Finding views: views findings
- Finding views → FOSSology database: reads findings
- Agent scheduler → Agent and DB libraries: uses agent services
- License scanners → Agent and DB libraries: uses DB services
- Copyright analysis → Agent and DB libraries: uses DB services
- Agent and DB libraries → FOSSology database: accesses state
- Agent and DB libraries → File repository: accesses files