Skip to contents

regulog (development version)

regulog 0.2.1

CRAN release: 2026-07-16

CRAN resubmission fixes

  • Removed “for R” from the package description
  • Package names now in single quotes in DESCRIPTION ('shiny', 'SHA-256')
  • Shiny examples wrapped in if(interactive()){} per CRAN policy

regulog 0.2.0

New functions

  • log_note() — log a free-text annotation or analytical decision as a tamper-evident NOTE entry. Mandatory-reason enforced and included in the hash chain.
  • log_signature() — apply an electronic signature per 21 CFR Part 11 §11.100/§11.200. Signer identity is resolved from the session user; entries covered is captured automatically.
  • filter_log() — query log entries as a data.frame by type, user, action, or date range. Works directly on .rlog file paths without an active session.
  • as.data.frame.regulog() — S3 method to convert a regulog object to a flat data frame, one row per entry (genesis record excluded).
  • rl_read() — explicit, logged read of any data source. Records the reader function, resolved file path, row count, and column count as a data_read ACTION entry. Path is resolved by argument name (file, path, data_file, input), falling back to the first unnamed argument — correct even when arguments are supplied out of position.
  • with_log() — scoped logging for a code block. Provides a local read() binding tied to the supplied log. Each call is isolated via lexical scope — concurrent calls across Shiny sessions never interfere, and errors inside the block propagate normally without corrupting previously logged entries.

Validation

  • IQ/OQ/PQ qualification scripts updated to v0.2:
  • RTM extended with rows covering 21 CFR Part 11 §11.100/§11.200, annotation trail, data read logging, and audit trail query interface.

Documentation

  • Package-level documentation with complete workflow, entry type reference, and regulatory coverage table.
  • Three vignettes: getting-started, hash-chain, shiny-integration.

regulog 0.1.0