PHPackages                             kraenzle-ritter/nara-risk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. kraenzle-ritter/nara-risk

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

kraenzle-ritter/nara-risk
=========================

Laravel package for automated digital preservation risk assessment based on NARA Digital Preservation Framework TTL/RDF data

v0.0.1(8mo ago)033MITPHPPHP ^8.2CI passing

Since Oct 30Pushed 7mo agoCompare

[ Source](https://github.com/kraenzle-ritter/nara-risk)[ Packagist](https://packagist.org/packages/kraenzle-ritter/nara-risk)[ RSS](/packages/kraenzle-ritter-nara-risk/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (8)Versions (2)Used By (0)

NARA Risk Assessment
====================

[](#nara-risk-assessment)

[![Tests](https://github.com/kraenzle-ritter/nara-risk/workflows/Tests/badge.svg)](https://github.com/kraenzle-ritter/nara-risk/actions)[![Code Style](https://github.com/kraenzle-ritter/nara-risk/workflows/Code%20Style/badge.svg)](https://github.com/kraenzle-ritter/nara-risk/actions)[![codecov](https://camo.githubusercontent.com/90f6bc6e69c33151143aa0469517f8aca92ea1735f6b0184e5f637067cd37485/68747470733a2f2f636f6465636f762e696f2f67682f6b7261656e7a6c652d7269747465722f6e6172612d7269736b2f6272616e63682f6d61696e2f67726170682f62616467652e737667)](https://codecov.io/gh/kraenzle-ritter/nara-risk)[![PHPStan Level 5](https://camo.githubusercontent.com/a888f2d0226abcd1d67c047cb99223a0e99ec37b6385ea64571479fb347783e2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d4c6576656c253230352d627269676874677265656e2e737667)](https://phpstan.org/)[![Latest Stable Version](https://camo.githubusercontent.com/366a32cf54908c359a5fa11fbd1142ebab802615fd8c0bd54bd475f9d8184279/68747470733a2f2f706f7365722e707567782e6f72672f6b7261656e7a6c652d7269747465722f6e6172612d7269736b2f762f737461626c65)](https://packagist.org/packages/kraenzle-ritter/nara-risk)[![Total Downloads](https://camo.githubusercontent.com/58c3fe0176c430c3781e153eb4fad57711530e53dd3e20d458690964e6dbc25b/68747470733a2f2f706f7365722e707567782e6f72672f6b7261656e7a6c652d7269747465722f6e6172612d7269736b2f646f776e6c6f616473)](https://packagist.org/packages/kraenzle-ritter/nara-risk)[![License](https://camo.githubusercontent.com/438b7608fed2c59b199a9a22bde21bc84a7b8ca650d2c2cf2288d9763da778d7/68747470733a2f2f706f7365722e707567782e6f72672f6b7261656e7a6c652d7269747465722f6e6172612d7269736b2f6c6963656e7365)](https://packagist.org/packages/kraenzle-ritter/nara-risk)[![PHP Version Require](https://camo.githubusercontent.com/87817637c030248110f929cf9593a389ffad0f13f96747f04af9bcf01491c283/68747470733a2f2f706f7365722e707567782e6f72672f6b7261656e7a6c652d7269747465722f6e6172612d7269736b2f726571756972652f706870)](https://packagist.org/packages/kraenzle-ritter/nara-risk)

A Laravel package for automated digital preservation risk assessment based on the NARA Digital Preservation Framework.

Features
--------

[](#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
------------

[](#installation)

```
composer require kraenzle-ritter/nara-risk
```

The package auto-registers via Laravel's package discovery.

Usage
-----

[](#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
------------------

[](#response-structure)

Each assessment returns an array with these key fields:

- `pronom_id` - PRONOM identifier
- `format_name` - Human-readable format name
- `category` - NARA format category
- `risk_level` - Low, Moderate, or High
- `recommended_action` - Retain, Transform, Assess, or Identify
- `tools` - Array of suggested preservation tools
- `nara_compliant` - Boolean indicating NARA framework coverage
- `assessment_notes` - Detailed recommendations

Additional Methods
------------------

[](#additional-methods)

```
// Get all supported PRONOM IDs
$ids = $service->getSupportedPronomIds();

// Get format statistics
$stats = $service->getFormatStatistics();

// Check cache status
$cacheInfo = $service->getCacheInfo();
```

Testing
-------

[](#testing)

Run the test suite:

```
composer test
```

The package includes 44 comprehensive tests covering all functionality.

Requirements
------------

[](#requirements)

- PHP 8.2+
- Laravel 11.44+ | 12.4+

Data Sources
------------

[](#data-sources)

This package uses official data from:

- [NARA Digital Preservation Framework](https://www.archives.gov/preservation/digital-preservation/risk)
- [PRONOM Technical Registry](https://www.nationalarchives.gov.uk/PRONOM/)
- [Archives.gov TTL/RDF files](https://www.archives.gov/preservation/digital-preservation/linked-data)

Data is cached locally and refreshed automatically every 28 days.

License
-------

[](#license)

This project is licensed under the [MIT License](LICENSE).

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance62

Regular maintenance activity

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

247d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/76f31e7e6772db47a91388ed82840fae1fa57185bb82a64924bb3839697222c2?d=identicon)[ottosmops](/maintainers/ottosmops)

---

Top Contributors

[![ottosmops](https://avatars.githubusercontent.com/u/4144389?v=4)](https://github.com/ottosmops "ottosmops (19 commits)")

---

Tags

laraveldigital-preservationpronomrisk-assessmentarchivalpreservationnarafile-formatsdpla

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/kraenzle-ritter-nara-risk/health.svg)

```
[![Health](https://phpackages.com/badges/kraenzle-ritter-nara-risk/health.svg)](https://phpackages.com/packages/kraenzle-ritter-nara-risk)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[renatomarinho/laravel-page-speed

Laravel Page Speed

2.5k1.7M10](/packages/renatomarinho-laravel-page-speed)[vinkius-labs/laravel-page-speed

Laravel Page Speed

2.5k12.5k1](/packages/vinkius-labs-laravel-page-speed)[emargareten/inertia-modal

Inertia Modal is a Laravel package that lets you implement backend-driven modal dialogs for Inertia apps.

90142.9k](/packages/emargareten-inertia-modal)[wearepixel/laravel-cart

A cart implementation for Laravel

1374.8k](/packages/wearepixel-laravel-cart)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.4k](/packages/tomshaw-electricgrid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
