CodamAIDocs
Themafertig

Umgebungsvariablen

Welche Variablen CRMS liest, woher ein Wert kommt und welche Variablen wann Pflicht sind: eingebettet, als Client und als eigener Dienst.

Ausprägungen
eingebettetes CRMSCRMS-Clienteigenständiger CRMS-DienstDokumente an / ausSiegel an / aus

Worum es geht

CRMS liest seine Einstellungen aus Umgebungsvariablen. Alle beginnen mit CODAMAI_CRMS_, die S3-Verbindung mit CODAMAI_S3_. Spring bindet sie über den Namen an eine Einstellung: CODAMAI_CRMS_RENDER_THREADS wird zu codamai.crms.render.threads.

Woher ein Wert kommt

Die Rangfolge, vom stärksten zum schwächsten
  1. Umgebungsvariable
    Ist die Variable gesetzt?
    ↳ nein weiter zur nächsten Quelle
  2. Build
    crms-configuration.yaml
    Hat das CRMS-Modul im Hub einen Wert?
    ↳ nein weiter zur nächsten Quelle
  3. CRMS
    Vorgabe des CRMS-Moduls
    Hat die Einstellung eine Vorgabe?
    ↳ nein Start bricht ab und nennt die Variable
  4. Der Wert steht fest

Die Datei crms-configuration.yaml gibt es nur, wenn CRMS eingebettet ist oder als eigener Dienst mit einem CRMS-Modul aus dem Hub gebaut wird. Ein Client hat keine.

Welche Variablen gelesen werden

Das hängt von der Platzierung ab:

Drei Platzierungen, drei Mengen von Variablen

Wann: CRMS läuft im Prozess einer CDMS-Anwendung.

Die Anwendung liest alle Variablen dieser Seite außer denen des Clients. Datenbank und CIAS hat sie ohnehin, siehe Die Datenbank.

Wann: Die CDMS-Anwendung ruft einen CRMS-Dienst auf.

Sie liest nur drei Variablen: CODAMAI_CRMS_CLIENT_URL (Pflicht), CODAMAI_CRMS_CLIENT_CONNECT_TIMEOUT (Vorgabe PT5S) und CODAMAI_CRMS_CLIENT_TIMEOUT (Vorgabe PT2M, ein ganzer Aufruf). Alles andere gehört dem Dienst.

Wann: CRMS läuft als eigenständiger Dienst.

Der Dienst liest alle CRMS-Variablen dieser Seite und dazu die Variablen für Datenbank und CIAS, die auch eine CDMS-Anwendung liest: CODAMAI_PERSISTENCE_*, CIAS_ISSUER, CIAS_CLIENT, CIAS_CLIENT_SECRET, CODAMAI_CIAS_PLATFORM_ADMINISTRATOR_ROLES, CODAMAI_CIAS_TENANCY_CLIENT_*. Dazu SERVER_PORT (8080), MANAGEMENT_SERVER_PORT (8081) und TZ (UTC).

Was Pflicht ist

Eine Pflichtvariable ohne Wert lässt den Start abbrechen. Die Fehlermeldung nennt die Variable. Ob eine Variable Pflicht ist, hängt von zwei Schaltern ab: ob Dokumente abgelegt werden (CODAMAI_CRMS_DOCUMENT_REVISIONS) und ob PDFs gesiegelt werden (CODAMAI_CRMS_SEAL_MODE).

Dokumente ablegen?Siegel an?Pflicht beim eingebetteten CRMS
––CODAMAI_CRMS_TSA_KEYSTORE, immer
ja–dazu CODAMAI_CRMS_DOCUMENT_KEY, CODAMAI_CRMS_DOCUMENT_RETENTION, CODAMAI_CRMS_DOCUMENT_BUCKET, CODAMAI_S3_ENDPOINT, CODAMAI_S3_ACCESS_KEY, CODAMAI_S3_SECRET_KEY
nein–nichts davon: kein Speicher, kein Dokumentschlüssel
–jadazu CODAMAI_CRMS_SEAL_KEYSTORE
–neinkein Siegelschlüssel

Dazu kommt: Lässt das CRMS-Modul Systemvorlagen zu (Scope SYSTEM, die Vorgabe), braucht ein eingebettetes CRMS CODAMAI_CIAS_PLATFORM_ADMINISTRATOR_ROLES. Diese Realm-Rollen schreiben die Systemvorlagen. Ohne sie startet die Anwendung nicht.

Beim eigenen Dienst sind Bucket und S3-Zugang immer Pflicht, auch wenn keine Dokumente abgelegt werden. Der eigenständige CRMS-Dienst bringt den S3-Speicher immer mit, und der prüft seinen Bucket beim Start. Dokumentschlüssel und Aufbewahrung sind dort wie oben nur Pflicht, solange Dokumente abgelegt werden.

Nachweis und Schlüssel

VariableBedeutungVorgabe
CODAMAI_CRMS_TSA_KEYSTOREder Zeitstempel-Schlüssel, mit dem CRMS seine Journale verankert. PKCS#12 als Base64. Das Zertifikat trägt timeStamping als kritische erweiterte SchlüsselverwendungPflicht, geheim
CODAMAI_CRMS_TSA_KEYSTORE_PASSWORDsein Passwortleer
CODAMAI_CRMS_TSA_TRUSTED_CERTIFICATESfrühere Zeitstempel-Zertifikate oder die ausstellende Stelle, als PEM oder als PEM in Base64. Damit bleiben alte Verankerungen nach einem Schlüsseltausch prüfbarleer
CODAMAI_CRMS_DOCUMENT_KEYder Schlüssel, der die Schlüssel der abgelegten Dokumente verschlüsselt. 256 Bit als Base64Pflicht bei abgelegten Dokumenten, geheim
CODAMAI_CRMS_SEAL_MODEdas PAdES-Siegel von PDF-Dokumenten: internal oder noneinternal
CODAMAI_CRMS_SEAL_KEYSTOREder Siegelschlüssel mit seiner Zertifikatskette, PKCS#12 als Base64Pflicht außer bei none, geheim
CODAMAI_CRMS_SEAL_KEYSTORE_PASSWORDsein Passwortleer

Verankern heißt: CRMS versieht den letzten Stand eines Journals regelmäßig mit einem Zeitstempel. Wie das funktioniert, steht unter Zeitstempel, das Siegel unter Siegel.

Dokumente und Speicher

VariableBedeutungVorgabe
CODAMAI_CRMS_DOCUMENT_REVISIONSendgültige Dokumente ablegen. Aus: Ein FINAL-Rendern wird abgelehnttrue
CODAMAI_CRMS_DOCUMENT_RETENTIONwie lange ein endgültiges Dokument bleibt, ISO-8601, etwa P10Ykeine
CODAMAI_CRMS_DOCUMENT_STORE_PAYLOADdie Daten eines endgültigen Dokuments verschlüsselt mit ablegentrue
CODAMAI_CRMS_AUDIT_READSauch jedes Lesen ins Journal schreibenfalse
CODAMAI_CRMS_DOCUMENT_BUCKETder Bucket der endgültigen Dokumente. Er muss mit Object Lock angelegt seinkeine
CODAMAI_S3_ENDPOINTdas S3 der Plattform, etwa http://minio:9000keine
CODAMAI_S3_ACCESS_KEY, CODAMAI_S3_SECRET_KEYder S3-Zugangkeine, geheim
CODAMAI_S3_REGIONdie S3-Regionus-east-1
CODAMAI_S3_PATH_STYLEBucket im Pfad statt im Hostnamen, wie MinIO es erwartettrue
CODAMAI_CRMS_STORAGE_ALLOW_UNLOCKEDeinen Bucket ohne Object Lock annehmen. Dokumente sind dann löschbarfalse

Object Lock ist eine S3-Funktion, die ein Objekt bis zu einem Datum gegen Löschen und Überschreiben sperrt. Die S3-Verbindung CODAMAI_S3_* teilen sich alle Module der Plattform. Der Bucket ist je Zweck eigen. Mehr unter Ablage.

Vorlagen und Rollen

VariableBedeutungVorgabe
CODAMAI_CRMS_TEMPLATE_SCOPESdie zugelassenen Scopes: SYSTEM, TENANT, USER, mit Komma getrenntalle
CODAMAI_CRMS_TEMPLATE_REASON_REQUIREDBegründung beim Einreichen, Zurücksetzen und Stilllegentrue
CODAMAI_CRMS_TEMPLATE_ROLES_USERClient-Rolle für eigene Vorlagen eines Benutzerscrms-template-personal
CODAMAI_CRMS_TEMPLATE_ROLES_TENANTClient-Rolle für Vorlagen eines Mandantencrms-template-author
CODAMAI_CRMS_REST_DOCUMENT_ROLES_READClient-Rolle, die endgültige Dokumente liestcrms-document-reader
CODAMAI_CRMS_REST_DOCUMENT_ROLES_HOLDClient-Rolle, die eine Sperre gegen Löschen setzt und löstcrms-document-custodian
CODAMAI_CRMS_REST_DOCUMENT_ROLES_ERASEClient-Rolle, die ein Dokument löschtcrms-document-eraser
CODAMAI_CRMS_REST_TEMPLATE_MAX_BYTESgrößter Upload einer Vorlage in Byte16777216

Die Freigabestufen haben keine Variable. Sie kommen nur aus dem Build.

Rendern

VariableBedeutungVorgabe
CODAMAI_CRMS_FORMATSdie angebotenen Formate, mit Komma getrennt: HTML, PDF, DOCX, XLSX, CSV, ODS. Ein Format ohne installiertes Modul lässt den Start abbrechenjedes installierte Format
CODAMAI_CRMS_PDF_PROFILEPDF_A_3A, PDF_UA, PDF_A_3A_UA oder NONEPDF_A_3A
CODAMAI_CRMS_TRANSIENT_DOCUMENTSden Modus TRANSIENT für Systemvorlagen erlauben. Aus wird er abgelehntfalse
CODAMAI_CRMS_RENDER_THREADSwie viele Dokumente gleichzeitig entstehenZahl der Prozessoren
CODAMAI_CRMS_RENDER_QUEUEwie viele darüber hinaus warten. Mehr werden abgelehnt50
CODAMAI_CRMS_RENDER_TIMEOUTwie lange ein Aufrufer auf sein Dokument wartetPT30S
CODAMAI_CRMS_RENDER_MAX_OUTPUTgrößtes Dokument in Byte52428800
CODAMAI_CRMS_PAYLOAD_MAX_BYTESgrößte Nutzdaten (Payload) in Byte5242880
CODAMAI_CRMS_ATTACHMENTS_MAX_COUNThöchste Zahl an Bildern (PNG, JPEG) je Anfrage200
CODAMAI_CRMS_ATTACHMENTS_MAX_BYTEShöchste Summe der Bilder je Anfrage in Byte52428800

Was die Grenzen bewirken, steht unter Ausführung, der Modus TRANSIENT unter Modi. Der eigene Dienst liest dazu CODAMAI_I18N_DEFAULT_LOCALE (de) und CODAMAI_I18N_SUPPORTED_LOCALES (de,en), siehe Sprache und Zeitzone.

Zeitpläne

VariableBedeutungVorgabe
CODAMAI_CRMS_SCHEDULING_ENABLEDob diese Instanz Verankerung und Aufbewahrung ausführttrue
CODAMAI_CRMS_ANCHOR_INTERVALAbstand zwischen zwei VerankerungenPT1H
CODAMAI_CRMS_RETENTION_INTERVALAbstand zwischen zwei Läufen, die abgelaufene Dokumente entfernenPT24H

Der erste Lauf beginnt eine Minute nach dem Start. Ein Abstand, der nicht positiv ist, lässt den Start abbrechen.

Fallen

Weiter

Suchen