Package: regulog 0.2.1

Ndoh Penn

regulog: Tamper-Evident Audit Logging for Regulated Environments

Provides tamper-evident, hash-chained audit logging for analytical applications. Every log entry is linked via an 'SHA-256' hash to its predecessor, making insertions, deletions, and modifications detectable. Covers user attribution, timestamp integrity, mandatory reason capture, chain verification, structured export, and 'shiny' session instrumentation. For more details see <https://reprostats.org/regulog/>. Suitable for any context where accountability and traceability matter: regulated environments (21 CFR Part 11, EU Annex 11), internal tooling, data pipelines, and multi-user 'shiny' applications. Ships with optional qualification scripts (IQ, OQ, PQ) for use in validated computerised systems.

Authors:Ndoh Penn [aut, cre]

regulog_0.2.1.tar.gz
regulog_0.2.1.zip(r-4.7)regulog_0.2.1.zip(r-4.6)regulog_0.2.1.zip(r-4.5)
regulog_0.2.1.tgz(r-4.6-any)regulog_0.2.1.tgz(r-4.5-any)
regulog_0.2.1.tar.gz(r-4.7-any)regulog_0.2.1.tar.gz(r-4.6-any)
regulog_0.2.1.tgz(r-4.6-emscripten)
manual.pdf |manual.html
DESCRIPTION |NEWS
card.svg |card.png
regulog/json (API)

# Install 'regulog' in R:
install.packages('regulog', repos = c('https://repro-stats.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/repro-stats/regulog/issues

Pkgdown/docs site:https://reprostats.org

On CRAN:

Conda:

21-cfr-part-11audit-loggxphash-chainreproducibilityshinytemper-evidentvalidated-systems

4.78 score 1 stars 12 exports 2 dependencies

Last updated from:9eee2c0c45. Checks:9 OK. Indexed: yes.

TargetResultTimeFilesSyslog
linux-devel-x86_64OK138
source / vignettesOK263
linux-release-x86_64OK138
macos-release-arm64OK210
macos-oldrel-arm64OK129
windows-develOK95
windows-releaseOK63
windows-oldrelOK72
wasm-releaseOK117

Exports:export_audit_trailfilter_loglog_actionlog_changelog_notelog_signatureregulog_initregulog_observerregulog_shiny_initrl_readverify_logwith_log

Dependencies:digestjsonlite

Getting started with regulog
1. Initialise a session | 2. Log actions | 3. Log field changes | 4. Log notes and decisions | 5. Logging data reads | Single reads with rl_read() | Scoped logging with with_log() | 6. Electronic signatures | 7. Verify chain integrity | 8. Query the log | 9. Convert to data frame | 10. Export the audit trail | 11. Entry type reference | 12. Validation (regulated environments) | Running the protocols | Capturing the qualification record | Requirements traceability | Logging the qualification itself | Re-qualification

Last update: 2026-07-01
Started: 2026-06-19

Shiny integration
1. Basic pattern | 2. User resolution | 3. Session lifecycle events | 4. Using regulog_observer() | 5. Notes and decisions from Shiny | 6. Logging data changes from Shiny | 7. Electronic signatures from Shiny | 8. Download handler for the audit trail | 9. Per-session vs shared log | Per-session (default) | Shared log across users | 10. Querying and verifying from outside the app | 11. Logging data reads from Shiny | 12. Complete minimal example

Last update: 2026-07-01
Started: 2026-06-19

The hash chain: how tamper detection works
1. The genesis record | 2. How entries are hashed | 3. Verification | 4. What tampering looks like | 4a. Modifying an entry's content | 4b. Deleting an entry | 4c. Breaking the prev_hash directly | 5. What the chain does NOT protect against | 6. Verifying a file without a live session | 7. Working with persistent .rlog files | 8. The NDJSON format | 9. Archival and long-term storage | 10. Hash algorithm

Last update: 2026-06-30
Started: 2026-06-24