CodamAIDocs
Module

CRMS – Reports and documents

CRMS turns a template and data into a report: PDF, HTML, Word or Excel. Templates change only through approved revisions, and final documents are stored tamper-evidently.

CRMS stands for CodamAI Reporting Management System. The most important sentence first:

Who does what?
The application (e.g. CDMS)
Data
  • collects the data for the report
  • sends a render request with a payload
  • decides when a report is produced
CRMS
Templates and documents
  • manages templates with revisions and approval
  • checks the payload
  • renders PDF, HTML, Word, Excel
  • stores final documents with evidence
CIAS
Identity
  • says who is asking
  • supplies tenant and roles
  • CRMS records the person on every revision

Three ways to produce a document

Preview
PREVIEW
  • carries a visible watermark
  • is never stored
  • for checking while editing
Final
FINAL
  • is stored as a revision
  • hash chain and timestamp
  • on WORM storage
Transient
TRANSIENT
  • no watermark
  • is not stored
  • only for system templates and when switched on

What exactly sets the three apart is explained in Preview, final, transient.

Embedded or as a service of its own

Like CIAS, CRMS runs in two ways: embedded in an application that also contains CDMS, or as a service of its own that other applications call over HTTP. It behaves the same in both cases. The hub derives which way a project gets from the runtime the CRMS module is placed in. More in Embedded or separate.

Where to start

Subject areas

Basics: what CRMS is

What CRMS does and what it does not do, the terms every page is built from, the split into modules and ports, and the two operating modes: embedded or as a service of its own.

What CRMS isThe termsEmbedded or as a service of its own
Templates

How a template is built, how CRMS finds it for a request, how it changes through revisions and approvals, which FreeMarker language it speaks, and how templates from a build get into the system.

How a template is builtHow CRMS finds the templateLife cycle of a revisionApproval chainsThe template languageTemplates shipped with a build
Render reports

How you request a document: the render request, the payload check, output types and formats, the three modes, pictures and SVG, the limits of a render, and language and time zone.

The render requestThe payload and its checkOutput types and formatsPreview, final, transientPictures and SVGExecution and limitsLanguage and time zone
Final documents and evidence

What a final document is, how hash chains and timestamps protect it against changes, how the seal works, where the bytes are kept, how long they stay, and how you verify all of it.

What a final document isThe two hash chainsTimestamps and anchorsThe sealStorage on WORMRetention, legal hold and erasureVerify and read
REST interface and rights

The HTTP routes under /crms, the roles CRMS decides with, the one error shape with keys, and the client an application uses to call a CRMS service of its own.

The endpointsThe rolesThe error answerThe client for a separate service
Set up and operate

The CRMS module of a project in the hub and its options, the environment variables, the database and, as an example, the reports of the hub.

The CRMS module in the hubEnvironment variablesThe databaseExample: the reports of the hub
Search