From ebc4b2a08093eefc043baa8adcb7f621f67ac59b Mon Sep 17 00:00:00 2001
From: ValueOn AG
Date: Tue, 9 Jun 2026 09:58:05 +0200
Subject: [PATCH] cp adapted to 2026 poweron 2
---
demoData/neutralizer/_generateTenantDossierPdf.py | 2 ++
demoData/pwg/_generateScans.py | 2 ++
modules/connectors/connectorOerebWfs.py | 2 ++
modules/connectors/connectorSwissTopoMapServer.py | 2 ++
modules/connectors/connectorZhWfsParcels.py | 2 ++
modules/datamodels/jsonContinuation.py | 2 ++
modules/dbHelpers/__init__.py | 2 ++
modules/demoConfigs/__init__.py | 2 ++
modules/demoConfigs/baseDemoConfig.py | 2 ++
modules/demoConfigs/investorDemo2026.py | 2 ++
modules/demoConfigs/pwgDemo2026.py | 2 ++
modules/features/commcoach/__init__.py | 2 ++
modules/features/commcoach/tests/__init__.py | 2 ++
modules/features/realEstate/__init__.py | 2 ++
modules/features/realEstate/bzoDocumentRetriever.py | 2 ++
modules/features/realEstate/bzoExtraction.py | 2 ++
modules/features/realEstate/bzoPdfExtractor.py | 2 ++
modules/features/realEstate/bzoRuleTaxonomy.py | 2 ++
modules/features/realEstate/datamodelFeatureRealEstate.py | 2 ++
modules/features/realEstate/handlerRealEstate.py | 2 ++
modules/features/realEstate/interfaceFeatureRealEstate.py | 2 ++
modules/features/realEstate/mainRealEstate.py | 2 ++
modules/features/realEstate/parcelSelectionService.py | 2 ++
modules/features/realEstate/realEstateGemeindeService.py | 2 ++
modules/features/realEstate/routeFeatureRealEstate.py | 2 ++
modules/features/realEstate/scrapeSwissTopo.py | 2 ++
modules/features/realEstate/serviceAiIntent.py | 2 ++
modules/features/realEstate/serviceBzo.py | 2 ++
modules/features/realEstate/serviceGeometry.py | 2 ++
modules/routes/routeAdminDemoConfig.py | 2 ++
.../services/serviceKnowledge/_progressMessages.py | 2 ++
.../services/serviceKnowledge/subConnectorPrefs.py | 2 ++
modules/serviceCenter/services/serviceSubscription/__init__.py | 2 ++
modules/workflowAutomation/__init__.py | 2 ++
modules/workflowAutomation/editor/__init__.py | 2 ++
scripts/_archive/check_orphan_featureinstance.py | 2 ++
scripts/_archive/i18n_rekey_plaintext_keys.py | 2 ++
scripts/_archive/migrate_async_to_sync.py | 2 ++
scripts/_archive/script_db_cleanup_duplicate_roles.py | 2 ++
scripts/_archive/script_db_migrate_accessrules_objectkeys.py | 2 ++
scripts/check_db_no_sysadmin_role.py | 2 ++
scripts/check_no_sysadmin_role.py | 2 ++
scripts/debug_rag_job_result.py | 2 ++
scripts/exportDbSchemaFromModels.py | 2 ++
scripts/script_db_adapt_to_models.py | 2 ++
scripts/script_db_audit_legacy_state.py | 2 ++
scripts/script_db_init_automation2.py | 2 ++
scripts/script_db_migrate_backgroundjob_progress_data.py | 2 ++
scripts/script_db_migrate_datasource_inherit.py | 2 ++
scripts/script_db_migrate_datasource_rag.py | 2 ++
scripts/script_db_migrate_datasource_settings.py | 2 ++
scripts/script_export_accessrules.py | 2 ++
scripts/script_migrate_user_uid.py | 2 ++
scripts/stage0_filefolder_schema_check.py | 2 ++
tests/demo/__init__.py | 2 ++
tests/demo/conftest.py | 2 ++
tests/demo/test_demo_api.py | 2 ++
tests/demo/test_demo_bootstrap.py | 2 ++
tests/demo/test_demo_data_files.py | 2 ++
tests/demo/test_demo_neutralization.py | 2 ++
tests/demo/test_demo_uc1_trustee.py | 2 ++
tests/demo/test_demo_uc2_realestate.py | 2 ++
tests/demo/test_demo_uc4_i18n.py | 2 ++
tests/fixtures/__init__.py | 2 ++
tests/integration/mandates/__init__.py | 2 ++
tests/integration/users/__init__.py | 2 ++
tests/serviceAi/__init__.py | 2 ++
tests/serviceGeneration/__init__.py | 2 ++
tests/unit/aicore/__init__.py | 2 ++
tests/unit/bootstrap/__init__.py | 2 ++
tests/unit/connectors/__init__.py | 2 ++
tests/unit/methods/__init__.py | 2 ++
tests/unit/nodeDefinitions/test_usesai_flag.py | 2 ++
tests/unit/serviceAgent/test_udm_agent_tools.py | 2 ++
tests/unit/services/test_buildTree.py | 2 ++
tests/unit/services/test_costEstimate.py | 2 ++
tests/unit/services/test_inheritFlags.py | 2 ++
tests/unit/services/test_p1d_consent_prefs.py | 2 ++
tests/unit/services/test_ragLimits.py | 2 ++
tests/unit/services/test_udbNodes.py | 2 ++
tests/unit/teamsbot/__init__.py | 2 ++
tests/unit/workflow/test_extract_content_handover.py | 2 ++
tests/unit/workflow/test_merge_context_handover.py | 2 ++
tests/unit/workflow/test_node_combinations.py | 2 ++
tests/unit/workflow/test_phase3_context_node.py | 2 ++
tests/unit/workflow/test_phase4_workflow_nodes.py | 2 ++
tests/unit/workflow/test_phase5_highvol.py | 2 ++
tests/unit/workflows/test_automation2_graphUtils.py | 2 ++
88 files changed, 176 insertions(+)
diff --git a/demoData/neutralizer/_generateTenantDossierPdf.py b/demoData/neutralizer/_generateTenantDossierPdf.py
index 2d4f5a02..f559451b 100644
--- a/demoData/neutralizer/_generateTenantDossierPdf.py
+++ b/demoData/neutralizer/_generateTenantDossierPdf.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Generate tenant-dossier.pdf for neutralization demo. Run: python _generateTenantDossierPdf.py
Uses ReportLab so the PDF opens reliably in all viewers (stdlib-only PDFs are fragile).
diff --git a/demoData/pwg/_generateScans.py b/demoData/pwg/_generateScans.py
index c93eda55..64125068 100644
--- a/demoData/pwg/_generateScans.py
+++ b/demoData/pwg/_generateScans.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Generate the 3 fictitious PWG scan PDFs used by the pilot demo.
Run: python _generateScans.py
diff --git a/modules/connectors/connectorOerebWfs.py b/modules/connectors/connectorOerebWfs.py
index 62b0ee18..c3cc6de5 100644
--- a/modules/connectors/connectorOerebWfs.py
+++ b/modules/connectors/connectorOerebWfs.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
ÖREB WFS Connector
diff --git a/modules/connectors/connectorSwissTopoMapServer.py b/modules/connectors/connectorSwissTopoMapServer.py
index d7b7a91e..a2e5db04 100644
--- a/modules/connectors/connectorSwissTopoMapServer.py
+++ b/modules/connectors/connectorSwissTopoMapServer.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Swiss Topo MapServer Connector (Simplified)
diff --git a/modules/connectors/connectorZhWfsParcels.py b/modules/connectors/connectorZhWfsParcels.py
index 066c1727..1d85c9a8 100644
--- a/modules/connectors/connectorZhWfsParcels.py
+++ b/modules/connectors/connectorZhWfsParcels.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Swiss Parcel (Liegenschaften) Connector
diff --git a/modules/datamodels/jsonContinuation.py b/modules/datamodels/jsonContinuation.py
index d4ee81f9..ed73ceea 100644
--- a/modules/datamodels/jsonContinuation.py
+++ b/modules/datamodels/jsonContinuation.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
JSON Continuation Context Module
diff --git a/modules/dbHelpers/__init__.py b/modules/dbHelpers/__init__.py
index e69de29b..06003961 100644
--- a/modules/dbHelpers/__init__.py
+++ b/modules/dbHelpers/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/modules/demoConfigs/__init__.py b/modules/demoConfigs/__init__.py
index 6ac5054f..aacdc133 100644
--- a/modules/demoConfigs/__init__.py
+++ b/modules/demoConfigs/__init__.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Demo Configs — Auto-Discovery Module
diff --git a/modules/demoConfigs/baseDemoConfig.py b/modules/demoConfigs/baseDemoConfig.py
index 604c7a78..22a43dc6 100644
--- a/modules/demoConfigs/baseDemoConfig.py
+++ b/modules/demoConfigs/baseDemoConfig.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Base class for demo configurations.
diff --git a/modules/demoConfigs/investorDemo2026.py b/modules/demoConfigs/investorDemo2026.py
index e88ce6c7..7efcb3e4 100644
--- a/modules/demoConfigs/investorDemo2026.py
+++ b/modules/demoConfigs/investorDemo2026.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Investor Demo April 2026
diff --git a/modules/demoConfigs/pwgDemo2026.py b/modules/demoConfigs/pwgDemo2026.py
index 90e3c3e4..c796d302 100644
--- a/modules/demoConfigs/pwgDemo2026.py
+++ b/modules/demoConfigs/pwgDemo2026.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""PWG Pilot Demo (April 2026)
Bootstraps a complete PWG-Pilot demo environment in an empty dev/demo install:
diff --git a/modules/features/commcoach/__init__.py b/modules/features/commcoach/__init__.py
index ea99083a..1130b94a 100644
--- a/modules/features/commcoach/__init__.py
+++ b/modules/features/commcoach/__init__.py
@@ -1 +1,3 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
# CommCoach Feature Container
diff --git a/modules/features/commcoach/tests/__init__.py b/modules/features/commcoach/tests/__init__.py
index e69de29b..06003961 100644
--- a/modules/features/commcoach/tests/__init__.py
+++ b/modules/features/commcoach/tests/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/modules/features/realEstate/__init__.py b/modules/features/realEstate/__init__.py
index 48368b52..9da5534e 100644
--- a/modules/features/realEstate/__init__.py
+++ b/modules/features/realEstate/__init__.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Real Estate feature module.
"""
diff --git a/modules/features/realEstate/bzoDocumentRetriever.py b/modules/features/realEstate/bzoDocumentRetriever.py
index 9b271cda..cc5659d8 100644
--- a/modules/features/realEstate/bzoDocumentRetriever.py
+++ b/modules/features/realEstate/bzoDocumentRetriever.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Document retriever for BZO extraction pipeline.
Queries Dokument table and retrieves PDF content from ComponentObjects.
diff --git a/modules/features/realEstate/bzoExtraction.py b/modules/features/realEstate/bzoExtraction.py
index 3eace0f2..27ab6966 100644
--- a/modules/features/realEstate/bzoExtraction.py
+++ b/modules/features/realEstate/bzoExtraction.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Pipeline for extracting structured content from BZO PDFs.
diff --git a/modules/features/realEstate/bzoPdfExtractor.py b/modules/features/realEstate/bzoPdfExtractor.py
index 155f5406..374f6d5c 100644
--- a/modules/features/realEstate/bzoPdfExtractor.py
+++ b/modules/features/realEstate/bzoPdfExtractor.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
PDF extraction module for BZO documents.
Extracts page-aware text blocks from PDF files.
diff --git a/modules/features/realEstate/bzoRuleTaxonomy.py b/modules/features/realEstate/bzoRuleTaxonomy.py
index dffd824d..583cbf32 100644
--- a/modules/features/realEstate/bzoRuleTaxonomy.py
+++ b/modules/features/realEstate/bzoRuleTaxonomy.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Rule taxonomy for BZO extraction.
Defines fixed rule types and their patterns for deterministic rule detection.
diff --git a/modules/features/realEstate/datamodelFeatureRealEstate.py b/modules/features/realEstate/datamodelFeatureRealEstate.py
index 8de665de..346e998b 100644
--- a/modules/features/realEstate/datamodelFeatureRealEstate.py
+++ b/modules/features/realEstate/datamodelFeatureRealEstate.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Real Estate data models for Architektur-Planungs-App.
Implements a general Swiss architecture planning data model.
diff --git a/modules/features/realEstate/handlerRealEstate.py b/modules/features/realEstate/handlerRealEstate.py
index e08ff6aa..86b765cd 100644
--- a/modules/features/realEstate/handlerRealEstate.py
+++ b/modules/features/realEstate/handlerRealEstate.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Handler functions for Real Estate feature routes.
Contains extracted business logic from route handlers.
diff --git a/modules/features/realEstate/interfaceFeatureRealEstate.py b/modules/features/realEstate/interfaceFeatureRealEstate.py
index 9219a842..24fe4955 100644
--- a/modules/features/realEstate/interfaceFeatureRealEstate.py
+++ b/modules/features/realEstate/interfaceFeatureRealEstate.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Interface to Real Estate database objects.
Uses PostgreSQL connector for data access with user/mandate filtering.
diff --git a/modules/features/realEstate/mainRealEstate.py b/modules/features/realEstate/mainRealEstate.py
index b9af4827..0fbbe363 100644
--- a/modules/features/realEstate/mainRealEstate.py
+++ b/modules/features/realEstate/mainRealEstate.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Real Estate feature main entry point.
Handles feature definition, RBAC registration, and lifecycle hooks.
diff --git a/modules/features/realEstate/parcelSelectionService.py b/modules/features/realEstate/parcelSelectionService.py
index c83efbe3..fde19efe 100644
--- a/modules/features/realEstate/parcelSelectionService.py
+++ b/modules/features/realEstate/parcelSelectionService.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Parcel selection service: compute combined outline, total area, and Bauzone grouping.
Used for multi-parcel selection in PEK map view.
diff --git a/modules/features/realEstate/realEstateGemeindeService.py b/modules/features/realEstate/realEstateGemeindeService.py
index bd1b0f9f..53eddb2c 100644
--- a/modules/features/realEstate/realEstateGemeindeService.py
+++ b/modules/features/realEstate/realEstateGemeindeService.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Gemeinde and BZO document services for Real Estate feature.
Provides ensure/import logic used by both routes and extract_bzo_information.
diff --git a/modules/features/realEstate/routeFeatureRealEstate.py b/modules/features/realEstate/routeFeatureRealEstate.py
index b78ee2ee..5723ab39 100644
--- a/modules/features/realEstate/routeFeatureRealEstate.py
+++ b/modules/features/realEstate/routeFeatureRealEstate.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Real Estate routes for the backend API.
Implements stateless endpoints for real estate database operations with AI-powered natural language processing.
diff --git a/modules/features/realEstate/scrapeSwissTopo.py b/modules/features/realEstate/scrapeSwissTopo.py
index 7f7d54e7..ff9b1c3c 100644
--- a/modules/features/realEstate/scrapeSwissTopo.py
+++ b/modules/features/realEstate/scrapeSwissTopo.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Swiss Topo Scraping Script
diff --git a/modules/features/realEstate/serviceAiIntent.py b/modules/features/realEstate/serviceAiIntent.py
index d790d7c8..98745fc1 100644
--- a/modules/features/realEstate/serviceAiIntent.py
+++ b/modules/features/realEstate/serviceAiIntent.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Real Estate feature — AI-based intent recognition and CRUD operations.
diff --git a/modules/features/realEstate/serviceBzo.py b/modules/features/realEstate/serviceBzo.py
index f4ec90bd..f70a799b 100644
--- a/modules/features/realEstate/serviceBzo.py
+++ b/modules/features/realEstate/serviceBzo.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Real Estate feature — BZO (Bau- und Zonenordnung) information extraction.
diff --git a/modules/features/realEstate/serviceGeometry.py b/modules/features/realEstate/serviceGeometry.py
index c8021701..0d29e99f 100644
--- a/modules/features/realEstate/serviceGeometry.py
+++ b/modules/features/realEstate/serviceGeometry.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Real Estate feature — Geometry utilities.
diff --git a/modules/routes/routeAdminDemoConfig.py b/modules/routes/routeAdminDemoConfig.py
index 0673c299..7c750977 100644
--- a/modules/routes/routeAdminDemoConfig.py
+++ b/modules/routes/routeAdminDemoConfig.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Admin Demo Config API
diff --git a/modules/serviceCenter/services/serviceKnowledge/_progressMessages.py b/modules/serviceCenter/services/serviceKnowledge/_progressMessages.py
index 99d91d6b..75f6413e 100644
--- a/modules/serviceCenter/services/serviceKnowledge/_progressMessages.py
+++ b/modules/serviceCenter/services/serviceKnowledge/_progressMessages.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Central i18n registration for BackgroundJob progress messages.
Walkers and consumers report progress via ``progressCb(..., messageKey="…",
diff --git a/modules/serviceCenter/services/serviceKnowledge/subConnectorPrefs.py b/modules/serviceCenter/services/serviceKnowledge/subConnectorPrefs.py
index 4aaaa9bf..29daff58 100644
--- a/modules/serviceCenter/services/serviceKnowledge/subConnectorPrefs.py
+++ b/modules/serviceCenter/services/serviceKnowledge/subConnectorPrefs.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Per-connection knowledge ingestion preference helpers.
Walkers call `loadConnectionPrefs(connectionId)` once at bootstrap start and
diff --git a/modules/serviceCenter/services/serviceSubscription/__init__.py b/modules/serviceCenter/services/serviceSubscription/__init__.py
index e69de29b..06003961 100644
--- a/modules/serviceCenter/services/serviceSubscription/__init__.py
+++ b/modules/serviceCenter/services/serviceSubscription/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/modules/workflowAutomation/__init__.py b/modules/workflowAutomation/__init__.py
index e6472791..20498d36 100644
--- a/modules/workflowAutomation/__init__.py
+++ b/modules/workflowAutomation/__init__.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
workflowAutomation — System component for workflow orchestration.
diff --git a/modules/workflowAutomation/editor/__init__.py b/modules/workflowAutomation/editor/__init__.py
index 471ba8a5..43e07c7b 100644
--- a/modules/workflowAutomation/editor/__init__.py
+++ b/modules/workflowAutomation/editor/__init__.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
workflowAutomation.editor — Graph/Flow authoring backend.
diff --git a/scripts/_archive/check_orphan_featureinstance.py b/scripts/_archive/check_orphan_featureinstance.py
index c09de61b..13757445 100644
--- a/scripts/_archive/check_orphan_featureinstance.py
+++ b/scripts/_archive/check_orphan_featureinstance.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Quick-Check: existiert FeatureInstance-Row 6019e7d0-b23d-41ec-b9f7-3dd1293078f2
in poweron_app, und welche Mandate/Instances stehen mit dem RedmineTicketMirror in Verbindung?
diff --git a/scripts/_archive/i18n_rekey_plaintext_keys.py b/scripts/_archive/i18n_rekey_plaintext_keys.py
index cf0e7362..5a1de579 100644
--- a/scripts/_archive/i18n_rekey_plaintext_keys.py
+++ b/scripts/_archive/i18n_rekey_plaintext_keys.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Rekey frontend t('dot.notation') -> t('Deutscher Klartext') using locales/de.ts mapping.
diff --git a/scripts/_archive/migrate_async_to_sync.py b/scripts/_archive/migrate_async_to_sync.py
index 8b5626df..2a6239cc 100644
--- a/scripts/_archive/migrate_async_to_sync.py
+++ b/scripts/_archive/migrate_async_to_sync.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python3
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Migration Script: Convert async def → def for route handlers that don't need async.
diff --git a/scripts/_archive/script_db_cleanup_duplicate_roles.py b/scripts/_archive/script_db_cleanup_duplicate_roles.py
index 1ded5a51..9a0abdf5 100644
--- a/scripts/_archive/script_db_cleanup_duplicate_roles.py
+++ b/scripts/_archive/script_db_cleanup_duplicate_roles.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python3
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Cleanup script for duplicate roles in the database.
diff --git a/scripts/_archive/script_db_migrate_accessrules_objectkeys.py b/scripts/_archive/script_db_migrate_accessrules_objectkeys.py
index b0b5ce4a..156d6398 100644
--- a/scripts/_archive/script_db_migrate_accessrules_objectkeys.py
+++ b/scripts/_archive/script_db_migrate_accessrules_objectkeys.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
# -*- coding: utf-8 -*-
"""
Migration Script: Migrate AccessRules to Vollqualifizierte ObjectKeys
diff --git a/scripts/check_db_no_sysadmin_role.py b/scripts/check_db_no_sysadmin_role.py
index e0d02d7c..b15c6ab9 100644
--- a/scripts/check_db_no_sysadmin_role.py
+++ b/scripts/check_db_no_sysadmin_role.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Runtime-Check (A5): bestaetigt, dass die ``sysadmin``-Rolle aus der
Datenbank entfernt wurde und liefert eine kurze Inventur fuer die
isPlatformAdmin / isSysAdmin Flags.
diff --git a/scripts/check_no_sysadmin_role.py b/scripts/check_no_sysadmin_role.py
index 23fa8f2e..7af66465 100644
--- a/scripts/check_no_sysadmin_role.py
+++ b/scripts/check_no_sysadmin_role.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""CI-Gate: Stelle sicher, dass keine Verweise auf die abgeschaffte
``sysadmin``-Rolle bzw. die alten Helper im Codebase mehr existieren.
diff --git a/scripts/debug_rag_job_result.py b/scripts/debug_rag_job_result.py
index c107f21e..5742f0b0 100644
--- a/scripts/debug_rag_job_result.py
+++ b/scripts/debug_rag_job_result.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Diagnose: read a connection.bootstrap job result and print its keys.
Usage (from repo root):
diff --git a/scripts/exportDbSchemaFromModels.py b/scripts/exportDbSchemaFromModels.py
index dc3e4ab8..abd23762 100644
--- a/scripts/exportDbSchemaFromModels.py
+++ b/scripts/exportDbSchemaFromModels.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Export the database schema from Pydantic MODEL_REGISTRY + fk_target metadata.
Usage (run from gateway/):
diff --git a/scripts/script_db_adapt_to_models.py b/scripts/script_db_adapt_to_models.py
index 6e5ca7a3..3811b029 100644
--- a/scripts/script_db_adapt_to_models.py
+++ b/scripts/script_db_adapt_to_models.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python3
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Datenbank-Anpassung an Pydantic-Modelle.
diff --git a/scripts/script_db_audit_legacy_state.py b/scripts/script_db_audit_legacy_state.py
index 54ee6474..c6a59fc1 100644
--- a/scripts/script_db_audit_legacy_state.py
+++ b/scripts/script_db_audit_legacy_state.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python3
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Audit-Skript fuer Legacy-Bestaende vor Bootstrap-Cleanup (Plan C).
Prueft fuer jede der 5 Bootstrap-Migrationsroutinen, ob noch Restbestand
diff --git a/scripts/script_db_init_automation2.py b/scripts/script_db_init_automation2.py
index 56d0daaf..7e9681f6 100644
--- a/scripts/script_db_init_automation2.py
+++ b/scripts/script_db_init_automation2.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python3
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Initialize poweron_automation2 database for the Automation2 feature.
diff --git a/scripts/script_db_migrate_backgroundjob_progress_data.py b/scripts/script_db_migrate_backgroundjob_progress_data.py
index bc5fc348..0e7b4cc8 100644
--- a/scripts/script_db_migrate_backgroundjob_progress_data.py
+++ b/scripts/script_db_migrate_backgroundjob_progress_data.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python3
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Migration: Add `progressMessageData` JSONB column to BackgroundJob.
Carries the structured i18n payload that lets the frontend translate
diff --git a/scripts/script_db_migrate_datasource_inherit.py b/scripts/script_db_migrate_datasource_inherit.py
index 3444cbee..014ef01d 100644
--- a/scripts/script_db_migrate_datasource_inherit.py
+++ b/scripts/script_db_migrate_datasource_inherit.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python3
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Migration: Drop NOT NULL on DataSource/FeatureDataSource cascade-inherit flags.
Switches three-valued semantics (NULL = inherit, True/False = explicit) for:
diff --git a/scripts/script_db_migrate_datasource_rag.py b/scripts/script_db_migrate_datasource_rag.py
index 95c2ae35..9771900f 100644
--- a/scripts/script_db_migrate_datasource_rag.py
+++ b/scripts/script_db_migrate_datasource_rag.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python3
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Migration: Rename DataSource.autoSync -> ragIndexEnabled, lastSynced -> lastIndexed.
This is a one-off migration for the RAG consent & control unification.
diff --git a/scripts/script_db_migrate_datasource_settings.py b/scripts/script_db_migrate_datasource_settings.py
index 9e821221..10a6238f 100644
--- a/scripts/script_db_migrate_datasource_settings.py
+++ b/scripts/script_db_migrate_datasource_settings.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python3
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Migration: Add `settings` JSONB column to DataSource and FeatureDataSource.
This is a one-off migration for the UDB DataSource Settings (Settings-Icon)
diff --git a/scripts/script_export_accessrules.py b/scripts/script_export_accessrules.py
index 6d5aeec7..2ba9bf64 100644
--- a/scripts/script_export_accessrules.py
+++ b/scripts/script_export_accessrules.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
# -*- coding: utf-8 -*-
"""
Export Script: Generate Access Rules per Role Report
diff --git a/scripts/script_migrate_user_uid.py b/scripts/script_migrate_user_uid.py
index e36f483d..eba0a4a5 100644
--- a/scripts/script_migrate_user_uid.py
+++ b/scripts/script_migrate_user_uid.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python3
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""One-time migration: Reassign all DB references from an old user UID to a new UID.
When a user is re-created in PORTA (same username, new UUID), all existing records
diff --git a/scripts/stage0_filefolder_schema_check.py b/scripts/stage0_filefolder_schema_check.py
index d172e19c..33f89c7e 100644
--- a/scripts/stage0_filefolder_schema_check.py
+++ b/scripts/stage0_filefolder_schema_check.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Stage 0: verify FileFolder table + FileItem.folderId column in management DB.
Run from the gateway directory (same as uvicorn):
diff --git a/tests/demo/__init__.py b/tests/demo/__init__.py
index e69de29b..06003961 100644
--- a/tests/demo/__init__.py
+++ b/tests/demo/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/tests/demo/conftest.py b/tests/demo/conftest.py
index 43d8363e..b01680f2 100644
--- a/tests/demo/conftest.py
+++ b/tests/demo/conftest.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Demo test fixtures.
diff --git a/tests/demo/test_demo_api.py b/tests/demo/test_demo_api.py
index 1973d110..4d5bc7c0 100644
--- a/tests/demo/test_demo_api.py
+++ b/tests/demo/test_demo_api.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
T-API: Demo Config API endpoint verification.
diff --git a/tests/demo/test_demo_bootstrap.py b/tests/demo/test_demo_bootstrap.py
index 45db18c7..a3f4f5d3 100644
--- a/tests/demo/test_demo_bootstrap.py
+++ b/tests/demo/test_demo_bootstrap.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
T-BOOT: Bootstrap idempotency and demo state verification.
diff --git a/tests/demo/test_demo_data_files.py b/tests/demo/test_demo_data_files.py
index 4e7a3d40..40681cbe 100644
--- a/tests/demo/test_demo_data_files.py
+++ b/tests/demo/test_demo_data_files.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
T-DATA: Demo data files verification.
diff --git a/tests/demo/test_demo_neutralization.py b/tests/demo/test_demo_neutralization.py
index aca54491..ff302a52 100644
--- a/tests/demo/test_demo_neutralization.py
+++ b/tests/demo/test_demo_neutralization.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
T-NEU: Neutralization config verification.
diff --git a/tests/demo/test_demo_uc1_trustee.py b/tests/demo/test_demo_uc1_trustee.py
index f7fd2ce0..920ecfb7 100644
--- a/tests/demo/test_demo_uc1_trustee.py
+++ b/tests/demo/test_demo_uc1_trustee.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
T-UC1: Trustee — Spesenverarbeitung.
diff --git a/tests/demo/test_demo_uc2_realestate.py b/tests/demo/test_demo_uc2_realestate.py
index 0d91122e..5205234d 100644
--- a/tests/demo/test_demo_uc2_realestate.py
+++ b/tests/demo/test_demo_uc2_realestate.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
T-UC2: Immobilien — Machbarkeitsstudie.
diff --git a/tests/demo/test_demo_uc4_i18n.py b/tests/demo/test_demo_uc4_i18n.py
index 04eba4b9..a9ea2cf2 100644
--- a/tests/demo/test_demo_uc4_i18n.py
+++ b/tests/demo/test_demo_uc4_i18n.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
T-UC4: Sprach-Deployment — Spanish (es).
diff --git a/tests/fixtures/__init__.py b/tests/fixtures/__init__.py
index e69de29b..06003961 100644
--- a/tests/fixtures/__init__.py
+++ b/tests/fixtures/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/tests/integration/mandates/__init__.py b/tests/integration/mandates/__init__.py
index e69de29b..06003961 100644
--- a/tests/integration/mandates/__init__.py
+++ b/tests/integration/mandates/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/tests/integration/users/__init__.py b/tests/integration/users/__init__.py
index e69de29b..06003961 100644
--- a/tests/integration/users/__init__.py
+++ b/tests/integration/users/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/tests/serviceAi/__init__.py b/tests/serviceAi/__init__.py
index e69de29b..06003961 100644
--- a/tests/serviceAi/__init__.py
+++ b/tests/serviceAi/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/tests/serviceGeneration/__init__.py b/tests/serviceGeneration/__init__.py
index e69de29b..06003961 100644
--- a/tests/serviceGeneration/__init__.py
+++ b/tests/serviceGeneration/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/tests/unit/aicore/__init__.py b/tests/unit/aicore/__init__.py
index e69de29b..06003961 100644
--- a/tests/unit/aicore/__init__.py
+++ b/tests/unit/aicore/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/tests/unit/bootstrap/__init__.py b/tests/unit/bootstrap/__init__.py
index e69de29b..06003961 100644
--- a/tests/unit/bootstrap/__init__.py
+++ b/tests/unit/bootstrap/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/tests/unit/connectors/__init__.py b/tests/unit/connectors/__init__.py
index e69de29b..06003961 100644
--- a/tests/unit/connectors/__init__.py
+++ b/tests/unit/connectors/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/tests/unit/methods/__init__.py b/tests/unit/methods/__init__.py
index e69de29b..06003961 100644
--- a/tests/unit/methods/__init__.py
+++ b/tests/unit/methods/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/tests/unit/nodeDefinitions/test_usesai_flag.py b/tests/unit/nodeDefinitions/test_usesai_flag.py
index caf07960..ebbd5444 100644
--- a/tests/unit/nodeDefinitions/test_usesai_flag.py
+++ b/tests/unit/nodeDefinitions/test_usesai_flag.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
# T18 — AC #16/#17: meta.usesAi on every node type; AI vs non-AI distinction.
import pytest
diff --git a/tests/unit/serviceAgent/test_udm_agent_tools.py b/tests/unit/serviceAgent/test_udm_agent_tools.py
index 3449dd81..f8e09251 100644
--- a/tests/unit/serviceAgent/test_udm_agent_tools.py
+++ b/tests/unit/serviceAgent/test_udm_agent_tools.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
# Phase 7: UDM tools (getUdmStructure, walkUdmBlocks, filterUdmByType).
from modules.serviceCenter.services.serviceAgent.coreTools._documentTools import (
diff --git a/tests/unit/services/test_buildTree.py b/tests/unit/services/test_buildTree.py
index 1f8c8da0..d99a99c8 100644
--- a/tests/unit/services/test_buildTree.py
+++ b/tests/unit/services/test_buildTree.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Unit tests for the generic UDB tree builder (`_buildTree.py`).
Most node-level behavior moved into the polymorphic class hierarchy
diff --git a/tests/unit/services/test_costEstimate.py b/tests/unit/services/test_costEstimate.py
index a8e25138..8b913bea 100644
--- a/tests/unit/services/test_costEstimate.py
+++ b/tests/unit/services/test_costEstimate.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Unit tests for `_costEstimate` heuristic.
Validates the output shape, basic formulas, and that 'basis' annotations
diff --git a/tests/unit/services/test_inheritFlags.py b/tests/unit/services/test_inheritFlags.py
index a74f1f7f..be3b41cf 100644
--- a/tests/unit/services/test_inheritFlags.py
+++ b/tests/unit/services/test_inheritFlags.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Unit tests for `_inheritFlags` cascade-inherit helpers.
Verifies:
diff --git a/tests/unit/services/test_p1d_consent_prefs.py b/tests/unit/services/test_p1d_consent_prefs.py
index 0d15f546..9300b164 100644
--- a/tests/unit/services/test_p1d_consent_prefs.py
+++ b/tests/unit/services/test_p1d_consent_prefs.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python3
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Unit tests for P1d: consent gating, preference parsing, and walker behaviour.
Tests
diff --git a/tests/unit/services/test_ragLimits.py b/tests/unit/services/test_ragLimits.py
index 1ab5c403..ce2a862d 100644
--- a/tests/unit/services/test_ragLimits.py
+++ b/tests/unit/services/test_ragLimits.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Unit tests for `_ragLimits` central helpers.
Verifies:
diff --git a/tests/unit/services/test_udbNodes.py b/tests/unit/services/test_udbNodes.py
index f9fae171..102bba27 100644
--- a/tests/unit/services/test_udbNodes.py
+++ b/tests/unit/services/test_udbNodes.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""Unit tests for the polymorphic UDB node hierarchy (udbNodes.py).
Each concrete node class is exercised for:
diff --git a/tests/unit/teamsbot/__init__.py b/tests/unit/teamsbot/__init__.py
index e69de29b..06003961 100644
--- a/tests/unit/teamsbot/__init__.py
+++ b/tests/unit/teamsbot/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
diff --git a/tests/unit/workflow/test_extract_content_handover.py b/tests/unit/workflow/test_extract_content_handover.py
index 8e8f409c..401b7a16 100644
--- a/tests/unit/workflow/test_extract_content_handover.py
+++ b/tests/unit/workflow/test_extract_content_handover.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
# Unit tests: context.extractContent serialize + presentation helpers (legacy handover dicts vs new paths).
import base64
diff --git a/tests/unit/workflow/test_merge_context_handover.py b/tests/unit/workflow/test_merge_context_handover.py
index 30a60b8f..d62fcc12 100644
--- a/tests/unit/workflow/test_merge_context_handover.py
+++ b/tests/unit/workflow/test_merge_context_handover.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
# Unit tests: context.mergeContext primary text from extract handover (documents[0]).
import json
diff --git a/tests/unit/workflow/test_node_combinations.py b/tests/unit/workflow/test_node_combinations.py
index b4857a14..3c807f19 100644
--- a/tests/unit/workflow/test_node_combinations.py
+++ b/tests/unit/workflow/test_node_combinations.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
# Tests: node handover compatibility across all major node combinations.
#
# Covers:
diff --git a/tests/unit/workflow/test_phase3_context_node.py b/tests/unit/workflow/test_phase3_context_node.py
index 5f113d5e..56ed0df3 100644
--- a/tests/unit/workflow/test_phase3_context_node.py
+++ b/tests/unit/workflow/test_phase3_context_node.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
# Tests for Phase 3: context.extractContent node, port types, executor dispatch.
import pytest
diff --git a/tests/unit/workflow/test_phase4_workflow_nodes.py b/tests/unit/workflow/test_phase4_workflow_nodes.py
index 3ca0792d..e042d85d 100644
--- a/tests/unit/workflow/test_phase4_workflow_nodes.py
+++ b/tests/unit/workflow/test_phase4_workflow_nodes.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
# Tests for Phase 4: data.consolidate, ai.consolidate, flow.loop level/concurrency, flow.merge dynamic.
import pytest
diff --git a/tests/unit/workflow/test_phase5_highvol.py b/tests/unit/workflow/test_phase5_highvol.py
index 44c51d76..287c96e5 100644
--- a/tests/unit/workflow/test_phase5_highvol.py
+++ b/tests/unit/workflow/test_phase5_highvol.py
@@ -1,3 +1,5 @@
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
# Tests for Phase 5: Loop concurrency, StepLog batching, streaming aggregate.
import pytest
diff --git a/tests/unit/workflows/test_automation2_graphUtils.py b/tests/unit/workflows/test_automation2_graphUtils.py
index 179857c1..941880d7 100644
--- a/tests/unit/workflows/test_automation2_graphUtils.py
+++ b/tests/unit/workflows/test_automation2_graphUtils.py
@@ -1,4 +1,6 @@
#!/usr/bin/env python3
+# Copyright (c) 2026 PowerOn AG
+# All rights reserved.
"""
Unit tests for automation2 graphUtils - resolveParameterReferences (ref/value format).
"""