kraenzle-ritter / nara-risk
Laravel package for automated digital preservation risk assessment based on NARA Digital Preservation Framework TTL/RDF data
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/kraenzle-ritter/nara-risk
Requires
- php: ^8.2
- illuminate/support: ^11.44|^12.4
- pietercolpaert/hardf: ^0.5
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- larastan/larastan: ^2.9|^3.7
- laravel/boost: ^1.6
- orchestra/testbench: ^9.0|^10.0
- phpstan/phpstan: ^1.12|^2.0
- phpunit/phpunit: ^10.0|^11.0
README
A Laravel package for automated digital preservation risk assessment based on the NARA Digital Preservation Framework.
Features
- Official NARA TTL/RDF data integration
- Automatic caching with 28-day refresh cycle
- Nara Risk assessment for 100+ file formats via PRONOM IDs
- Nara Preservation action recommendations
- Support for 16 NARA format categories
- Nara Tool suggestions for preservation workflows
Installation
composer require kraenzle-ritter/nara-risk
The package auto-registers via Laravel's package discovery.
Usage
use KraenzleRitter\NaraRisk\Services\NaraAssessmentService; $service = app(NaraAssessmentService::class); $result = $service->assessFile('fmt/412'); // PDF 1.7 echo $result['risk_level']; // "Low" echo $result['category']; // "Textual" echo $result['recommended_action']; // "Retain"
Response Structure
Each assessment returns an array with these key fields:
pronom_id- PRONOM identifierformat_name- Human-readable format namecategory- NARA format categoryrisk_level- Low, Moderate, or Highrecommended_action- Retain, Transform, Assess, or Identifytools- Array of suggested preservation toolsnara_compliant- Boolean indicating NARA framework coverageassessment_notes- Detailed recommendations
Additional Methods
// Get all supported PRONOM IDs $ids = $service->getSupportedPronomIds(); // Get format statistics $stats = $service->getFormatStatistics(); // Check cache status $cacheInfo = $service->getCacheInfo();
Testing
Run the test suite:
composer test
The package includes 44 comprehensive tests covering all functionality.
Requirements
- PHP 8.2+
- Laravel 11.44+ | 12.4+
Data Sources
This package uses official data from:
Data is cached locally and refreshed automatically every 28 days.
License
This project is licensed under the MIT License.