Centurio Systemen en modules
🏛️ Plattformarchitectuur 🔑 Login
🏠 Alle modules / core_platform / Webseite & Shop
📘

Webseite & Shop

sites core_platform 🛡️ RLS Protected

Webseite & Shop — aus Code abgeleitete Prozess- und API-Dokumentation.

Fachliche Bestimmung: Plattform- und Basisinfrastruktur: Webseite & Shop — aus Code abgeleitete Prozess- und API-Dokumentation. Erfasst alle zugehörigen Geschäftsdaten, Zustandsmodelle, Automationskaskaden und Schnittstellen zur nahtlosen Einbindung in die unternehmensweiten Wertschöpfungsprozesse.

⚡ Werkstromen en levenscyclus

Dieses Modul folgt dem standardisierten transaktionalen CRUD- und Event-Lifecycle.

⚙️ Fachprozesse & Capabilities (System-Fachlogik)

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

Gesamt: 0
Keine modul-spezifischen Capabilities registriert. Das Modul nutzt Standard-CRUD und Kern-APIs.

🧠 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 Webseite & Shop in der Plattform-Architektur

Das Modul sites erbringt zentrale Infrastruktur- und Steuerungsdienste im Monolithen. Jeder Aufruf durchläuft die zweistufige Sicherheitsarchitektur: Zunächst verifiziert der Session-Guard die Identität des Benutzers, woraufhin die PostgreSQL Row-Level-Security (RLS) aktiviert wird. Dadurch ist garantiert, dass Datenzugriffe mathematisch und physisch ausschließlich auf den authentifizierten tenant_id-Kontext beschränkt bleiben.

Mutationen und administrative Aktionen werden über transaktionale Services ausgeführt. Bei zustandsverändernden Operationen schreibt das System simultan in die betriebliche Zieltabelle und in die transaktionale Outbox. Asynchrone Worker greifen diese Signale ab und kaskadieren Ereignisse an nachgelagerte Module, ohne den synchronen HTTP-Pfad zu blockieren. Jeder Zugriff wird unveränderbar im Audit-Trail protokolliert.

🏛️

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

Meta-Fachlogik: Sicherheits- und Plattform-Architektur

Basiert auf den Standards ISO/IEC 27001:2022 (Informationssicherheits-Managementsysteme), den BSI IT-Grundschutz-Bausteinen (APP.3.1 Webanwendungen, SYS.1.1 Allgemeiner Server) und Art. 32 DSGVO.

  • Mandantentrennung als Primärinvariante: Keine Mandantendaten dürfen jemals ohne tenant_id-Filter geladen oder mutiert werden. Das Soll-Modell verlangt die Durchsetzung auf Datenbankebene via PostgreSQL RLS.

  • Unveränderbarkeit von Sicherheitsereignissen: Protokolldateien, Logins, Berechtigungsänderungen und Konfigurationsmutationen müssen revisionssicher und schreibgeschützt festgeschrieben werden.

⚙️

Systemische Fachlogik: Faktische Umsetzung in Centurio ERP & Capabilities

Systemische Fachlogik: Die faktische Umsetzung von Webseite & Shop

In Centurio ERP wird sites als modularer Monolith-Baustein unter app.modules.sites geführt. Die Autorisierung erfolgt über die zentrale RBAC-Engine mit Berechtigungs-Prüfung gegen Rollen und Berechtigungen. Datenänderungen lösen Outbox-Events aus, die über den PostgreSQL events-Bus verteilt werden. Idempotente Requests verhindern Replay-Angriffe und versehentliche Mehrfachausführungen.

🤖

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

AI Solution Architect Blueprint

KI-Consultant Blueprint: Customizing & No-Code Leitfaden für Webseite & Shop

  • No-Code Datenmodell-Erweiterung: Bei Bedarf können kundenspezifische Zusatzfelder im No-Code Customizing Studio angelegt werden.

  • Workflow-Integration: Administrative Ereignisse können als Trigger in der Canvas No-Code DAG Engine genutzt werden.

  • Sicherheitsregeln: Vor kritischen Systemänderungen sind Human-in-the-Loop Freigabegates einzurichten.

📚 Operative Prozessbegriffe & Transaktionsschnittstellen

Zentrale Fachbegriffe im Prozesszusammenhang (Operatives Modell)
Mandantenisolation (RLS)
PostgreSQL Row-Level-Security zur physischen und logischen Trennung aller Kundendaten auf Datenbankebene.
Zweistufige Authentifizierung
Strikte Trennung zwischen globalem Benutzerkonto und mandantenbezogener Rollenzuweisung (RBAC).
Transaktionale Outbox
Entkoppeltes Event-Publishing zur Vermeidung von Distributed-Transaction-Inkonsistenzen.
Revisionssicherer Audit-Trail
Lückenlose Aufzeichnung aller datenverändernden Zugriffe für Compliance und Rechnungsprüfung.
📥 Eingänge & Trigger (Inputs)
  • Systemaufrufe über REST-API oder Web-Portal
  • Hintergrund-Worker und Cron-Jobs
  • Ereignisse über den Outbox-Eventbus
📤 Ausgänge & Arbeitsergebnisse (Outputs)
  • Ausführungs- und Protokolldaten
  • Audit-Events im Revisionsjournal
  • Veränderte Systemzustände
⚡ Kaskaden & Folgeprozesse (Cascades)
  • security_event -> admin_alert: Alarmierung bei verdächtigen Zugriffen
  • config_changed -> cache_invalidation: Sofortige Aktualisierung
🛡️ Nebenprozesse & Resilienz
  • Manuelle Ausnahmebehandlung durch berechtigte Sachbearbeiter
  • Revisionssichere Protokollierung im Audit-Trail
💡 No-Code Checkliste & Praxistipps
  • Rollen- und Berechtigungsstufen exakt an Mitarbeiteraufgaben anpassen
  • Sicherheitsrichtlinien für Passwörter und Sessions aktivieren

🗄️ Datamodellen & velden

SitePages site_pages RLS Aktiv
19 Veld / kolom

Tabelle site_pages

Feldname Datatipe Verplichting Schlüssel Gezondheid
site_id UUID Ja * FK ➔ sites.id Feld site_id
parent_id UUID Nein FK ➔ site_pages.id Feld parent_id
key VARCHAR(64) Ja * - Feld key
slug_i18n JSONB Ja * - Feld slug_i18n
title_i18n JSONB Ja * - Feld title_i18n
blocks JSONB Ja * - Feld blocks
seo_description_i18n JSONB Ja * - Feld seo_description_i18n
sort_order INTEGER Ja * - Feld sort_order
show_in_nav BOOLEAN Ja * - Feld show_in_nav
status VARCHAR(16) Ja * - Feld status
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
Sites sites RLS Aktiv
19 Veld / kolom

Tabelle sites

Feldname Datatipe Verplichting Schlüssel Gezondheid
name VARCHAR(120) Ja * - Feld name
theme_key VARCHAR(32) Ja * - Feld theme_key
languages JSONB Ja * - Feld languages
default_language VARCHAR(8) Ja * - Feld default_language
tagline_i18n JSONB Ja * - Feld tagline_i18n
contact_email VARCHAR(255) Nein - Feld contact_email
phone VARCHAR(64) Nein - Feld phone
shop_enabled BOOLEAN Ja * - Feld shop_enabled
status VARCHAR(16) Ja * - Feld status
legal_ready_at VARCHAR(40) Nein - Feld legal_ready_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
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

🔌 Inleidende punten (UI&API's)

Art Metode Eindpunt / pad Titel & Zweck Aanpassing
⚡ REST API GET /site/{slug}/
site_root
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /site/{slug}/{lang}/
site_home
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /site/{slug}/{lang}/checkout/return
checkout_return
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /site/{slug}/{lang}/legal/{kind}
site_legal
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /site/{slug}/{lang}/order/{order_number}
order_status
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /site/{slug}/{lang}/shop
shop_catalog_page
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /site/{slug}/{lang}/{page_slug}
site_page
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /sites
sites_dashboard
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /sites/legal
sites_legal
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /sites/legal/{legal_id}
sites_legal_edit
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /sites/orders
sites_orders
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /sites/orders/{order_id}
sites_order_detail
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /sites/pages
sites_pages
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /sites/pages/new
sites_page_new
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /sites/pages/{page_id}
sites_page_edit
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /sites/payments
sites_payments
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API GET /sites/shop
sites_shop
Semantic binding: inventory_only; mutation=False
sites
⚡ REST API POST /site/hooks/paypal/{slug}
paypal_webhook
Semantic binding: inventory_only; mutation=True
sites
⚡ REST API POST /site/hooks/stripe/{slug}
stripe_webhook
Semantic binding: inventory_only; mutation=True
sites
⚡ REST API POST /site/{slug}/{lang}/checkout
checkout_submit
Semantic binding: inventory_only; mutation=True
sites
⚡ REST API POST /sites/legal/seed
sites_legal_seed
Semantic binding: inventory_only; mutation=True
sites
⚡ REST API POST /sites/legal/{legal_id}/save
sites_legal_save
Semantic binding: inventory_only; mutation=True
sites
⚡ REST API POST /sites/orders/{order_id}/transit
sites_order_transit
Semantic binding: inventory_only; mutation=True
sites
⚡ REST API POST /sites/pages/save
sites_page_save
Semantic binding: inventory_only; mutation=True
sites
⚡ REST API POST /sites/pages/{page_id}/delete
sites_page_delete
Semantic binding: inventory_only; mutation=True
sites
⚡ REST API POST /sites/payments/save
sites_payments_save
Semantic binding: inventory_only; mutation=True
sites
⚡ REST API POST /sites/settings
sites_settings
Semantic binding: inventory_only; mutation=True
sites
⚡ REST API POST /sites/shop/save
sites_shop_save
Semantic binding: inventory_only; mutation=True
sites

🛡️ Reglementarische en compliance

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • De Commissie heeft de Commissie verzocht om een aanvullende verordening te treffen.
  • De volgende functies worden toegepast: