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
-
UmgebungsvariableIst die Variable gesetzt?↳ nein weiter zur nächsten Quelle
-
Buildcrms-configuration.yamlHat das CRMS-Modul im Hub einen Wert?↳ nein weiter zur nächsten Quelle
-
CRMSVorgabe des CRMS-ModulsHat die Einstellung eine Vorgabe?↳ nein Start bricht ab und nennt die Variable
- 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:
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 |
| – | ja | dazu CODAMAI_CRMS_SEAL_KEYSTORE |
| – | nein | kein 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
| Variable | Bedeutung | Vorgabe |
|---|---|---|
CODAMAI_CRMS_TSA_KEYSTORE | der Zeitstempel-Schlüssel, mit dem CRMS seine Journale verankert. PKCS#12 als Base64. Das Zertifikat trägt timeStamping als kritische erweiterte Schlüsselverwendung | Pflicht, geheim |
CODAMAI_CRMS_TSA_KEYSTORE_PASSWORD | sein Passwort | leer |
CODAMAI_CRMS_TSA_TRUSTED_CERTIFICATES | frühere Zeitstempel-Zertifikate oder die ausstellende Stelle, als PEM oder als PEM in Base64. Damit bleiben alte Verankerungen nach einem Schlüsseltausch prüfbar | leer |
CODAMAI_CRMS_DOCUMENT_KEY | der Schlüssel, der die Schlüssel der abgelegten Dokumente verschlüsselt. 256 Bit als Base64 | Pflicht bei abgelegten Dokumenten, geheim |
CODAMAI_CRMS_SEAL_MODE | das PAdES-Siegel von PDF-Dokumenten: internal oder none | internal |
CODAMAI_CRMS_SEAL_KEYSTORE | der Siegelschlüssel mit seiner Zertifikatskette, PKCS#12 als Base64 | Pflicht außer bei none, geheim |
CODAMAI_CRMS_SEAL_KEYSTORE_PASSWORD | sein Passwort | leer |
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
| Variable | Bedeutung | Vorgabe |
|---|---|---|
CODAMAI_CRMS_DOCUMENT_REVISIONS | endgültige Dokumente ablegen. Aus: Ein FINAL-Rendern wird abgelehnt | true |
CODAMAI_CRMS_DOCUMENT_RETENTION | wie lange ein endgültiges Dokument bleibt, ISO-8601, etwa P10Y | keine |
CODAMAI_CRMS_DOCUMENT_STORE_PAYLOAD | die Daten eines endgültigen Dokuments verschlüsselt mit ablegen | true |
CODAMAI_CRMS_AUDIT_READS | auch jedes Lesen ins Journal schreiben | false |
CODAMAI_CRMS_DOCUMENT_BUCKET | der Bucket der endgültigen Dokumente. Er muss mit Object Lock angelegt sein | keine |
CODAMAI_S3_ENDPOINT | das S3 der Plattform, etwa http://minio:9000 | keine |
CODAMAI_S3_ACCESS_KEY, CODAMAI_S3_SECRET_KEY | der S3-Zugang | keine, geheim |
CODAMAI_S3_REGION | die S3-Region | us-east-1 |
CODAMAI_S3_PATH_STYLE | Bucket im Pfad statt im Hostnamen, wie MinIO es erwartet | true |
CODAMAI_CRMS_STORAGE_ALLOW_UNLOCKED | einen Bucket ohne Object Lock annehmen. Dokumente sind dann löschbar | false |
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
| Variable | Bedeutung | Vorgabe |
|---|---|---|
CODAMAI_CRMS_TEMPLATE_SCOPES | die zugelassenen Scopes: SYSTEM, TENANT, USER, mit Komma getrennt | alle |
CODAMAI_CRMS_TEMPLATE_REASON_REQUIRED | Begründung beim Einreichen, Zurücksetzen und Stilllegen | true |
CODAMAI_CRMS_TEMPLATE_ROLES_USER | Client-Rolle für eigene Vorlagen eines Benutzers | crms-template-personal |
CODAMAI_CRMS_TEMPLATE_ROLES_TENANT | Client-Rolle für Vorlagen eines Mandanten | crms-template-author |
CODAMAI_CRMS_REST_DOCUMENT_ROLES_READ | Client-Rolle, die endgültige Dokumente liest | crms-document-reader |
CODAMAI_CRMS_REST_DOCUMENT_ROLES_HOLD | Client-Rolle, die eine Sperre gegen Löschen setzt und löst | crms-document-custodian |
CODAMAI_CRMS_REST_DOCUMENT_ROLES_ERASE | Client-Rolle, die ein Dokument löscht | crms-document-eraser |
CODAMAI_CRMS_REST_TEMPLATE_MAX_BYTES | größter Upload einer Vorlage in Byte | 16777216 |
Die Freigabestufen haben keine Variable. Sie kommen nur aus dem Build.
Rendern
| Variable | Bedeutung | Vorgabe |
|---|---|---|
CODAMAI_CRMS_FORMATS | die angebotenen Formate, mit Komma getrennt: HTML, PDF, DOCX, XLSX, CSV, ODS. Ein Format ohne installiertes Modul lässt den Start abbrechen | jedes installierte Format |
CODAMAI_CRMS_PDF_PROFILE | PDF_A_3A, PDF_UA, PDF_A_3A_UA oder NONE | PDF_A_3A |
CODAMAI_CRMS_TRANSIENT_DOCUMENTS | den Modus TRANSIENT für Systemvorlagen erlauben. Aus wird er abgelehnt | false |
CODAMAI_CRMS_RENDER_THREADS | wie viele Dokumente gleichzeitig entstehen | Zahl der Prozessoren |
CODAMAI_CRMS_RENDER_QUEUE | wie viele darüber hinaus warten. Mehr werden abgelehnt | 50 |
CODAMAI_CRMS_RENDER_TIMEOUT | wie lange ein Aufrufer auf sein Dokument wartet | PT30S |
CODAMAI_CRMS_RENDER_MAX_OUTPUT | größtes Dokument in Byte | 52428800 |
CODAMAI_CRMS_PAYLOAD_MAX_BYTES | größte Nutzdaten (Payload) in Byte | 5242880 |
CODAMAI_CRMS_ATTACHMENTS_MAX_COUNT | höchste Zahl an Bildern (PNG, JPEG) je Anfrage | 200 |
CODAMAI_CRMS_ATTACHMENTS_MAX_BYTES | höchste Summe der Bilder je Anfrage in Byte | 52428800 |
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
| Variable | Bedeutung | Vorgabe |
|---|---|---|
CODAMAI_CRMS_SCHEDULING_ENABLED | ob diese Instanz Verankerung und Aufbewahrung ausführt | true |
CODAMAI_CRMS_ANCHOR_INTERVAL | Abstand zwischen zwei Verankerungen | PT1H |
CODAMAI_CRMS_RETENTION_INTERVAL | Abstand zwischen zwei Läufen, die abgelaufene Dokumente entfernen | PT24H |
Der erste Lauf beginnt eine Minute nach dem Start. Ein Abstand, der nicht positiv ist, lässt den Start abbrechen.