Centurio System- & Moduldokumentation
🏛️ Plattform-Architektur 🔑 Login
Alle Module / crm_office / Intranet & Veröffentlichungen
📰

Intranet & Veröffentlichungen

publishing crm_office 🛡️ RLS Protected

SharePoint-ähnliche Sites, Seiten/News/Policies, Umlauf-Freigabe, DMS-Anhänge und Lesebestätigung.

Fachliche Bestimmung: Mitarbeiter-Intranet: Bereiche (Sites) mit Mitgliedsrollen, Entwürfe mit TinyMCE-Body, Freigabe über DocumentCirculation (source_type=publishing_page), Major-Version bei Publish, optionale Ack-Tasks bei Policies. Anhänge sind DMS-Dokumente; Download über /api/v1/documents/{id}/download. TinyMCE Link/Bild wählt aus dem DMS.

⚡ Workflows & Lebenszyklen

Intranet-Seite: Entwurf → Umlauf → Veröffentlichung intranet_page_lifecycle

Inhaltspfad vom Entwurf bis zur veröffentlichten Major-Version inkl. optionaler Lesebestätigung.

sequenceDiagram Author->>PublishingAPI: POST /pages (draft) Author->>PublishingAPI: POST /pages/{id}/attachments Author->>PublishingAPI: POST /pages/{id}/submit PublishingAPI->>Circulations: create source_type=publishing_page Approver->>Circulations: complete_step approved Circulations->>PublishingAPI: publish_from_circulation Reader->>Web: GET /intranet/pages/{id}
1. DRAFT
Entwurf
Contributor legt Seite an und gestaltet HTML-Body (Bleach-sanitized).
Aktionen: attach_document, upload_and_attach, save_draft
2. PENDING
Zur Freigabe
startet DocumentCirculation mit source_type=publishing_page.
Aktionen: submit_for_approval
3. PUBLISHED
Veröffentlicht
publish_from_circulation setzt Major-Version und Feed-Sichtbarkeit.
Aktionen: audience_filter, optional_ack_tasks
4. ACK
Lesebestätigung
Policies mit requires_ack erzeugen Ack-Nachweis pro Version.
Aktionen: acknowledge

⚙️ Fachprozesse & Capabilities (System-Fachlogik)

Registrierte Fachoperationen und System-Capabilities dieses Moduls zur Steuerung von Workflows, Kaskaden und KI-Agenten.

Gesamt: 11 engine: 11
Capability & Schlüssel Fachliche Bezeichnung Ausführung / Coverage Risikostufe & Freigabe Effekte & Kaskaden
Locale publish capability:publishing.locale.publish
Op: publishing.locale.publish
Objekt: publication
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • publishing.locale.publish
Newsletter capability:publishing.newsletter.send
Op: publishing.newsletter.send
Objekt: newsletter
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • publishing.newsletter.send
Seite zur Veröffentlichung einreichen capability:publishing.page.publish
Op: publishing.page.publish
Objekt: publication
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • publication.submit_for_publish
Seite zur Freigabe einreichen capability:publishing.page.submit
Op: publishing.page.submit
Intent: submit_page
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: external_effect
  • publication.submitted
Veröffentlichung zurückziehen capability:publishing.page.unpublish
Op: publishing.page.unpublish
Intent: unpublish_page
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: external_effect
  • publication.unpublished
Publishing: create page capability:publishing.publishing.create_page
Op: publishing.publishing.create_page
Objekt: publishing
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • publishing.create_page
Publishing: create site capability:publishing.publishing.create_site
Op: publishing.publishing.create_site
Objekt: publishing
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • publishing.create_site
Publishing: publish from circulation capability:publishing.publishing.publish_from_circulation
Op: publishing.publishing.publish_from_circulation
Objekt: publishing
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • publishing.publish_from_circulation
Publishing: set member capability:publishing.publishing.set_member
Op: publishing.publishing.set_member
Objekt: publishing
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • publishing.set_member
Publishing: submit for publish capability:publishing.publishing.submit_for_publish
Op: publishing.publishing.submit_for_publish
Objekt: publishing
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • publishing.submit_for_publish
Publishing: update site capability:publishing.publishing.update_site
Op: publishing.publishing.update_site
Objekt: publishing
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • publishing.update_site

🧠 Fachprozess-Erzählung & Dual Knowledge Architektur

Synthese aus der ideologischen Blaupause (Meta-Fachlogik / Soll), der faktischen System-Implementierung (System-Fachlogik / Ist) und No-Code Customizing für KI-Consultants.

Dual Knowledge Layer
📖

Der durchgängige Businessprozess im Detail (End-to-End Fließtext-Erzählung)

Der funktionale Ablauf von Intranet & Veröffentlichungen in Kommunikation & Office

Das Modul publishing verbindet operative Dokumentenflüsse mit Kundeninteraktionen. Eingehende Korrespondenz wird semantisch erfasst, Vorgängen zugeordnet und in digitale Umlaufmappen zur Prüfung eingesteuert. Teammitglieder arbeiten belegbezogen über Aufgaben, Chats und Notizen zusammen.

🏛️

Meta-Fachlogik: Ideologische Blaupause, Soll-Weltbild & Normen

Meta-Fachlogik: Dokumentenmanagement & DSGVO

Basiert auf DIN ISO 15489 (Schriftgutverwaltung), GoBD-Aufbewahrungsfristen (10 Jahre für Handelsbriefe) und DSGVO-Vorgaben zum Auskunfts- und Löschrecht.

⚙️

Systemische Fachlogik: Faktische Umsetzung in Centurio ERP & Capabilities

Systemische Fachlogik: Die faktische Umsetzung von Intranet & Veröffentlichungen

Realisierung über app.modules.publishing mit OCR-Pipeline, Partner-Matching und Volltextindex. DMS-Ablagen sichern Unveränderbarkeit durch Prüfsummen.

🤖

KI-Consultant Leitfaden: Customizing- & No-Code-Konzept (Soll-Ist-Synthese)

AI Solution Architect Blueprint

KI-Consultant Blueprint: Customizing & No-Code Leitfaden für Intranet & Veröffentlichungen

  • Zusatzfelder: Kundenkategorien, Dokumententypen und Prioritätsstufen anlegen.

  • DAG-Workflows: Automatische Zuordnung von Eingangsnachrichten und Wiedervorlagen einrichten.

📚 Operative Prozessbegriffe & Transaktionsschnittstellen

Zentrale Fachbegriffe im Prozesszusammenhang (Operatives Modell)
Interessentenmanagement
Strukturierte Pflege von Anfragen bis zur Kaufentscheidung.
Dokumentenmanagement (DMS)
Zentrale, versionssichere Ablage aller Geschäftsdokumente.
Umlaufmappen
Geregelte Prüf- und Freigabewege für Dokumente und Verträge.
Omnichannel-Inbox
Zusammenführung von E-Mail, Scan und Portal in einer Arbeitsoberfläche.
📥 Eingänge & Trigger (Inputs)
  • Eingehende E-Mails, Briefe und Scans
  • Kundenanfragen über Website oder Telefon
  • Interne Notizen und Dokumentenentwürfe
📤 Ausgänge & Arbeitsergebnisse (Outputs)
  • Archivierte Dokumente mit Metadaten
  • Zugeordnete CRM-Aktivitäten
  • Freigegebene Veröffentlichungen
⚡ Kaskaden & Folgeprozesse (Cascades)
  • inbox_mail -> crm_activity: Aktivitäteneintrag
  • document_approved -> archive_locked: GoBD-Archivierung
🛡️ Nebenprozesse & Resilienz
  • Manuelle Ausnahmebehandlung durch berechtigte Sachbearbeiter
  • Revisionssichere Protokollierung im Audit-Trail
💡 No-Code Checkliste & Praxistipps
  • Dokumentenkategorien und Verschlagwortungsregeln festlegen
  • E-Mail-Postfächer an die Inbox anbinden

🗄️ Datenmodelle & Felder

PublishingAcks publishing_acks RLS Aktiv
9 Felder / Spalten

Tabelle publishing_acks

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
page_id UUID Ja * FK ➔ publishing_pages.id Feld page_id
user_id UUID Ja * FK ➔ users.id Feld user_id
version INTEGER Ja * - Feld version
acknowledged_at DATETIME Ja * - Feld acknowledged_at
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
PublishingAttachments publishing_attachments RLS Aktiv
8 Felder / Spalten

Tabelle publishing_attachments

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
page_id UUID Ja * FK ➔ publishing_pages.id Feld page_id
document_id UUID Ja * FK ➔ documents.id Feld document_id
sort_order INTEGER Ja * - Feld sort_order
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
PublishingPageVersions publishing_page_versions RLS Aktiv
12 Felder / Spalten

Tabelle publishing_page_versions

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
page_id UUID Ja * FK ➔ publishing_pages.id Feld page_id
version INTEGER Ja * - Feld version
is_major BOOLEAN Ja * - Feld is_major
title VARCHAR(255) Ja * - Feld title
summary TEXT Nein - Feld summary
body TEXT Ja * - Feld body
created_by UUID Nein - Feld created_by
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
PublishingPages publishing_pages RLS Aktiv
28 Felder / Spalten

Tabelle publishing_pages

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
site_id UUID Ja * FK ➔ publishing_sites.id Feld site_id
page_type VARCHAR(48) Ja * - Feld page_type
status VARCHAR(48) Ja * - Feld status
title VARCHAR(255) Ja * - Feld title
slug VARCHAR(255) Ja * - Feld slug
summary TEXT Nein - Feld summary
body TEXT Ja * - Feld body
pinned BOOLEAN Ja * - Feld pinned
requires_ack BOOLEAN Ja * - Feld requires_ack
published_version INTEGER Nein - Feld published_version
draft_version INTEGER Ja * - Feld draft_version
published_at DATETIME Nein - Feld published_at
published_by UUID Nein - Feld published_by
circulation_id UUID Nein FK ➔ document_circulations.id Feld circulation_id
ism_policy_id UUID Nein - Feld ism_policy_id
audience_kind VARCHAR(48) Ja * - Feld audience_kind
audience_roles JSONB Ja * - Feld audience_roles
audience_unit_ids JSONB Ja * - Feld audience_unit_ids
audience_user_ids JSONB Ja * - Feld audience_user_ids
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
PublishingSiteMembers publishing_site_members RLS Aktiv
8 Felder / Spalten

Tabelle publishing_site_members

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
site_id UUID Ja * FK ➔ publishing_sites.id Feld site_id
user_id UUID Ja * FK ➔ users.id Feld user_id
role VARCHAR(48) Ja * - Feld role
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
PublishingSites publishing_sites RLS Aktiv
18 Felder / Spalten

Tabelle publishing_sites

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
name VARCHAR(255) Ja * - Feld name
slug VARCHAR(128) Ja * - Feld slug
description TEXT Nein - Feld description
is_active BOOLEAN Ja * - Feld is_active
default_approver_ids JSONB Ja * - Feld default_approver_ids
default_audience_kind VARCHAR(48) Ja * - Feld default_audience_kind
default_audience_roles JSONB Ja * - Feld default_audience_roles
default_audience_unit_ids JSONB Ja * - Feld default_audience_unit_ids
navigation JSONB Ja * - Feld navigation
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata

🔌 Einstiegspunkte (UI & APIs)

Art Methode Endpunkt / Pfad Titel & Zweck Berechtigung
⚡ REST API DELETE /api/v1/publishing/pages/{page_id}/attachments/{document_id}
detach_document
Semantic binding: operator_surface; mutation=True
publishing
⚡ REST API GET /api/v1/publishing/dms-search
dms_search
Semantic binding: inventory_only; mutation=False
publishing
⚡ REST API GET /api/v1/publishing/feed
publishing_feed
Semantic binding: inventory_only; mutation=False
publishing
⚡ REST API GET /api/v1/publishing/pages/{page_id}
get_page
Semantic binding: inventory_only; mutation=False
publishing
⚡ REST API GET /api/v1/publishing/pages/{page_id}/attachments
list_attachments
Semantic binding: inventory_only; mutation=False
publishing
⚡ REST API GET /api/v1/publishing/sites
list_sites
Semantic binding: inventory_only; mutation=False
publishing
⚡ REST API GET /api/v1/publishing/sites/{site_id}/members
list_members
Semantic binding: inventory_only; mutation=False
publishing
⚡ REST API GET /api/v1/publishing/sites/{site_id}/pages
list_site_pages
Semantic binding: inventory_only; mutation=False
publishing
⚡ REST API PATCH /api/v1/publishing/pages/{page_id}
update_page
Semantic binding: operator_surface; mutation=True
publishing
⚡ REST API PATCH /api/v1/publishing/sites/{site_id}
update_site
Semantic binding: operator_surface; mutation=True
publishing
⚡ REST API POST /api/v1/publishing/pages
create_page
Semantic binding: operator_surface; mutation=True
publishing
⚡ REST API POST /api/v1/publishing/pages/{page_id}/ack
acknowledge_page
Semantic binding: operator_surface; mutation=True
publishing
⚡ REST API POST /api/v1/publishing/pages/{page_id}/attachments
attach_document
Semantic binding: operator_surface; mutation=True
publishing
⚡ REST API POST /api/v1/publishing/pages/{page_id}/submit
submit_page
Semantic binding: operator_surface; mutation=True
publishing
⚡ REST API POST /api/v1/publishing/pages/{page_id}/unpublish
unpublish_page
Semantic binding: operator_surface; mutation=True
publishing
⚡ REST API POST /api/v1/publishing/sites
create_site
Semantic binding: operator_surface; mutation=True
publishing
⚡ REST API PUT /api/v1/publishing/sites/{site_id}/members
set_member
Semantic binding: operator_surface; mutation=True
publishing
🖥️ WEB-UI GET /intranet
Intranet-Feed
Audience-gefilterte Übersicht
Standard
🖥️ WEB-UI GET /intranet/pages/{id}/edit
Seite bearbeiten
TinyMCE + DMS-Anhänge
Standard
⚡ REST API POST /api/v1/publishing/pages/{id}/submit
Zur Freigabe
Startet Umlauf
Standard

🛡️ Regulatorik & Compliance

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • GoBD Nachvollziehbarkeit
  • Audit publishing.attachment_*
  • Mandanten-Isolation (RLS)
Verknüpfte Module:
➔ circulations ➔ documents ➔ tasks