build: integrate workflow engine repository
This commit is contained in:
@@ -75,6 +75,7 @@ Generated from `repositories.json`. Use that JSON file as the machine-readable s
|
|||||||
| `govoplan-views` | `platform` | `../govoplan-views` | [govoplan-views](https://git.add-ideas.de/GovOPlaN/govoplan-views) |
|
| `govoplan-views` | `platform` | `../govoplan-views` | [govoplan-views](https://git.add-ideas.de/GovOPlaN/govoplan-views) |
|
||||||
| `govoplan-wiki` | `domain` | `../govoplan-wiki` | [govoplan-wiki](https://git.add-ideas.de/GovOPlaN/govoplan-wiki) |
|
| `govoplan-wiki` | `domain` | `../govoplan-wiki` | [govoplan-wiki](https://git.add-ideas.de/GovOPlaN/govoplan-wiki) |
|
||||||
| `govoplan-workflow` | `platform` | `../govoplan-workflow` | [govoplan-workflow](https://git.add-ideas.de/GovOPlaN/govoplan-workflow) |
|
| `govoplan-workflow` | `platform` | `../govoplan-workflow` | [govoplan-workflow](https://git.add-ideas.de/GovOPlaN/govoplan-workflow) |
|
||||||
|
| `govoplan-workflow-engine` | `platform` | `../govoplan-workflow-engine` | [govoplan-workflow-engine](https://git.add-ideas.de/GovOPlaN/govoplan-workflow-engine) |
|
||||||
|
|
||||||
## Connector
|
## Connector
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,7 @@
|
|||||||
{"name": "govoplan-wiki", "category": "module", "subtype": "domain", "remote": "git@git.add-ideas.de:GovOPlaN/govoplan-wiki.git", "path": "govoplan-wiki"},
|
{"name": "govoplan-wiki", "category": "module", "subtype": "domain", "remote": "git@git.add-ideas.de:GovOPlaN/govoplan-wiki.git", "path": "govoplan-wiki"},
|
||||||
{"name": "addideas-govoplan-website", "category": "website", "subtype": "public-site", "remote": "git@git.add-ideas.de:add-ideas/addideas-govoplan-website.git", "path": "addideas-govoplan-website", "bootstrap_transport": "registered"},
|
{"name": "addideas-govoplan-website", "category": "website", "subtype": "public-site", "remote": "git@git.add-ideas.de:add-ideas/addideas-govoplan-website.git", "path": "addideas-govoplan-website", "bootstrap_transport": "registered"},
|
||||||
{"name": "govoplan-workflow", "category": "module", "subtype": "platform", "remote": "git@git.add-ideas.de:GovOPlaN/govoplan-workflow.git", "path": "govoplan-workflow"},
|
{"name": "govoplan-workflow", "category": "module", "subtype": "platform", "remote": "git@git.add-ideas.de:GovOPlaN/govoplan-workflow.git", "path": "govoplan-workflow"},
|
||||||
|
{"name": "govoplan-workflow-engine", "category": "module", "subtype": "platform", "remote": "git@git.add-ideas.de:GovOPlaN/govoplan-workflow-engine.git", "path": "govoplan-workflow-engine"},
|
||||||
{"name": "govoplan-xoev", "category": "connector", "subtype": "standard", "remote": "git@git.add-ideas.de:GovOPlaN/govoplan-xoev.git", "path": "govoplan-xoev"},
|
{"name": "govoplan-xoev", "category": "connector", "subtype": "standard", "remote": "git@git.add-ideas.de:GovOPlaN/govoplan-xoev.git", "path": "govoplan-xoev"},
|
||||||
{"name": "govoplan-xrechnung", "category": "connector", "subtype": "standard", "remote": "git@git.add-ideas.de:GovOPlaN/govoplan-xrechnung.git", "path": "govoplan-xrechnung"},
|
{"name": "govoplan-xrechnung", "category": "connector", "subtype": "standard", "remote": "git@git.add-ideas.de:GovOPlaN/govoplan-xrechnung.git", "path": "govoplan-xrechnung"},
|
||||||
{"name": "govoplan-xta-osci", "category": "connector", "subtype": "standard", "remote": "git@git.add-ideas.de:GovOPlaN/govoplan-xta-osci.git", "path": "govoplan-xta-osci"}
|
{"name": "govoplan-xta-osci", "category": "connector", "subtype": "standard", "remote": "git@git.add-ideas.de:GovOPlaN/govoplan-xta-osci.git", "path": "govoplan-xta-osci"}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
-e ../govoplan-connectors
|
-e ../govoplan-connectors
|
||||||
-e ../govoplan-datasources
|
-e ../govoplan-datasources
|
||||||
-e ../govoplan-dataflow
|
-e ../govoplan-dataflow
|
||||||
|
-e ../govoplan-workflow-engine
|
||||||
-e ../govoplan-workflow
|
-e ../govoplan-workflow
|
||||||
-e ../govoplan-views
|
-e ../govoplan-views
|
||||||
-e ../govoplan-search
|
-e ../govoplan-search
|
||||||
|
|||||||
@@ -88,9 +88,17 @@ class DependencyBoundaryDiscoveryTests(unittest.TestCase):
|
|||||||
"govoplan-calendar",
|
"govoplan-calendar",
|
||||||
"govoplan-poll",
|
"govoplan-poll",
|
||||||
"govoplan-scheduling",
|
"govoplan-scheduling",
|
||||||
|
"govoplan-workflow-engine",
|
||||||
):
|
):
|
||||||
self.assertIn(owner, boundary.REPOS)
|
self.assertIn(owner, boundary.REPOS)
|
||||||
|
|
||||||
|
def test_transitional_allowlist_entries_have_a_removal_target(self) -> None:
|
||||||
|
boundary = load_boundary_module()
|
||||||
|
|
||||||
|
for item in boundary.ALLOWLIST:
|
||||||
|
self.assertIn("remove", item.reason.casefold())
|
||||||
|
self.assertRegex(item.reason, r"#[0-9]+")
|
||||||
|
|
||||||
def test_webui_discovery_is_fail_closed(self) -> None:
|
def test_webui_discovery_is_fail_closed(self) -> None:
|
||||||
boundary = load_boundary_module()
|
boundary = load_boundary_module()
|
||||||
with tempfile.TemporaryDirectory(prefix="govoplan-boundary-webui-") as directory:
|
with tempfile.TemporaryDirectory(prefix="govoplan-boundary-webui-") as directory:
|
||||||
|
|||||||
@@ -58,7 +58,13 @@ from govoplan_datasources.backend.db.models import (
|
|||||||
|
|
||||||
def main() -> int:
|
def main() -> int:
|
||||||
registry = build_platform_registry(
|
registry = build_platform_registry(
|
||||||
("connectors", "datasources", "dataflow", "workflow")
|
(
|
||||||
|
"connectors",
|
||||||
|
"datasources",
|
||||||
|
"dataflow",
|
||||||
|
"workflow_engine",
|
||||||
|
"workflow",
|
||||||
|
)
|
||||||
)
|
)
|
||||||
registry.configure_capability_context(
|
registry.configure_capability_context(
|
||||||
ModuleContext(registry=registry, settings=object())
|
ModuleContext(registry=registry, settings=object())
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ PY
|
|||||||
"$PYTHON" -m unittest discover -s /mnt/DATA/git/govoplan-connectors/tests
|
"$PYTHON" -m unittest discover -s /mnt/DATA/git/govoplan-connectors/tests
|
||||||
"$PYTHON" -m unittest discover -s /mnt/DATA/git/govoplan-datasources/tests
|
"$PYTHON" -m unittest discover -s /mnt/DATA/git/govoplan-datasources/tests
|
||||||
"$PYTHON" -m unittest discover -s /mnt/DATA/git/govoplan-dataflow/tests
|
"$PYTHON" -m unittest discover -s /mnt/DATA/git/govoplan-dataflow/tests
|
||||||
|
"$PYTHON" -m unittest discover -s /mnt/DATA/git/govoplan-workflow-engine/tests
|
||||||
"$PYTHON" -m unittest discover -s /mnt/DATA/git/govoplan-workflow/tests
|
"$PYTHON" -m unittest discover -s /mnt/DATA/git/govoplan-workflow/tests
|
||||||
"$PYTHON" -m unittest discover -s /mnt/DATA/git/govoplan-views/tests
|
"$PYTHON" -m unittest discover -s /mnt/DATA/git/govoplan-views/tests
|
||||||
"$PYTHON" -m unittest discover -s /mnt/DATA/git/govoplan-dashboard/tests
|
"$PYTHON" -m unittest discover -s /mnt/DATA/git/govoplan-dashboard/tests
|
||||||
|
|||||||
@@ -109,9 +109,36 @@ class AllowlistedImport:
|
|||||||
reason: str
|
reason: str
|
||||||
|
|
||||||
|
|
||||||
# Transitional exceptions. This should remain empty; add entries only with a
|
# Transitional exceptions. This should remain empty outside explicit,
|
||||||
# dated removal plan and a capability/API contract issue.
|
# time-bounded compatibility facades with a tracked removal issue.
|
||||||
ALLOWLIST: tuple[AllowlistedImport, ...] = ()
|
_WORKFLOW_ENGINE_COMPATIBILITY_FACADES = (
|
||||||
|
"backend/bpmn.py",
|
||||||
|
"backend/bpmn_adapters.py",
|
||||||
|
"backend/bpmn_graph.py",
|
||||||
|
"backend/db/__init__.py",
|
||||||
|
"backend/db/models.py",
|
||||||
|
"backend/governance.py",
|
||||||
|
"backend/instance_service.py",
|
||||||
|
"backend/manifest.py",
|
||||||
|
"backend/node_library.py",
|
||||||
|
"backend/router.py",
|
||||||
|
"backend/runtime.py",
|
||||||
|
"backend/schemas.py",
|
||||||
|
"backend/service.py",
|
||||||
|
"backend/validation.py",
|
||||||
|
)
|
||||||
|
ALLOWLIST: tuple[AllowlistedImport, ...] = tuple(
|
||||||
|
AllowlistedImport(
|
||||||
|
owner="govoplan-workflow",
|
||||||
|
relative_path=relative_path,
|
||||||
|
imported_owner="govoplan-workflow-engine",
|
||||||
|
reason=(
|
||||||
|
"One-release Engine extraction facade; remove for 0.2 under "
|
||||||
|
"govoplan-workflow#14 and govoplan-core#40."
|
||||||
|
),
|
||||||
|
)
|
||||||
|
for relative_path in _WORKFLOW_ENGINE_COMPATIBILITY_FACADES
|
||||||
|
)
|
||||||
ALLOWLIST_KEYS = {(item.owner, item.relative_path, item.imported_owner) for item in ALLOWLIST}
|
ALLOWLIST_KEYS = {(item.owner, item.relative_path, item.imported_owner) for item in ALLOWLIST}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ def reconcile_runtime_environment(
|
|||||||
"ENABLED_MODULES": ",".join(spec.enabled_modules),
|
"ENABLED_MODULES": ",".join(spec.enabled_modules),
|
||||||
"CELERY_ENABLED": "true" if redis.mode != "disabled" else "false",
|
"CELERY_ENABLED": "true" if redis.mode != "disabled" else "false",
|
||||||
"CELERY_QUEUES": (
|
"CELERY_QUEUES": (
|
||||||
"send_email,append_sent,notifications,calendar,dataflow,events,default"
|
"send_email,append_sent,notifications,calendar,dataflow,workflow,events,default"
|
||||||
),
|
),
|
||||||
"CORS_ORIGINS": spec.public_url,
|
"CORS_ORIGINS": spec.public_url,
|
||||||
"GOVOPLAN_TRUSTED_HOSTS": public.hostname or "",
|
"GOVOPLAN_TRUSTED_HOSTS": public.hostname or "",
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ FULL_MODULES = (
|
|||||||
"connectors",
|
"connectors",
|
||||||
"datasources",
|
"datasources",
|
||||||
"dataflow",
|
"dataflow",
|
||||||
|
"workflow_engine",
|
||||||
"workflow",
|
"workflow",
|
||||||
"views",
|
"views",
|
||||||
"search",
|
"search",
|
||||||
|
|||||||
@@ -51,12 +51,12 @@ set +a
|
|||||||
|
|
||||||
export APP_ENV="${APP_ENV:-staging}"
|
export APP_ENV="${APP_ENV:-staging}"
|
||||||
export GOVOPLAN_INSTALL_PROFILE="${GOVOPLAN_INSTALL_PROFILE:-production-like}"
|
export GOVOPLAN_INSTALL_PROFILE="${GOVOPLAN_INSTALL_PROFILE:-production-like}"
|
||||||
export ENABLED_MODULES="${ENABLED_MODULES:-tenancy,organizations,identity,access,admin,dashboard,policy,audit,campaigns,files,mail,calendar,poll,scheduling,connectors,datasources,dataflow,workflow,views,search,risk_compliance,notifications,docs,ops}"
|
export ENABLED_MODULES="${ENABLED_MODULES:-tenancy,organizations,identity,access,admin,dashboard,policy,audit,campaigns,files,mail,calendar,poll,scheduling,connectors,datasources,dataflow,workflow_engine,workflow,views,search,risk_compliance,notifications,docs,ops}"
|
||||||
export DATABASE_URL="${DATABASE_URL:-${GOVOPLAN_PRODUCTION_LIKE_DATABASE_URL:-postgresql+psycopg://govoplan:govoplan-dev@127.0.0.1:55433/govoplan}}"
|
export DATABASE_URL="${DATABASE_URL:-${GOVOPLAN_PRODUCTION_LIKE_DATABASE_URL:-postgresql+psycopg://govoplan:govoplan-dev@127.0.0.1:55433/govoplan}}"
|
||||||
export GOVOPLAN_DATABASE_URL_PGTOOLS="${GOVOPLAN_DATABASE_URL_PGTOOLS:-${GOVOPLAN_PRODUCTION_LIKE_DATABASE_URL_PGTOOLS:-postgresql://govoplan:govoplan-dev@127.0.0.1:55433/govoplan}}"
|
export GOVOPLAN_DATABASE_URL_PGTOOLS="${GOVOPLAN_DATABASE_URL_PGTOOLS:-${GOVOPLAN_PRODUCTION_LIKE_DATABASE_URL_PGTOOLS:-postgresql://govoplan:govoplan-dev@127.0.0.1:55433/govoplan}}"
|
||||||
export REDIS_URL="${REDIS_URL:-${GOVOPLAN_PRODUCTION_LIKE_REDIS_URL:-redis://127.0.0.1:56379/0}}"
|
export REDIS_URL="${REDIS_URL:-${GOVOPLAN_PRODUCTION_LIKE_REDIS_URL:-redis://127.0.0.1:56379/0}}"
|
||||||
export CELERY_ENABLED="${CELERY_ENABLED:-true}"
|
export CELERY_ENABLED="${CELERY_ENABLED:-true}"
|
||||||
export CELERY_QUEUES="${CELERY_QUEUES:-send_email,append_sent,notifications,calendar,default}"
|
export CELERY_QUEUES="${CELERY_QUEUES:-send_email,append_sent,notifications,calendar,workflow,default}"
|
||||||
export FILE_STORAGE_BACKEND="${FILE_STORAGE_BACKEND:-local}"
|
export FILE_STORAGE_BACKEND="${FILE_STORAGE_BACKEND:-local}"
|
||||||
export FILE_STORAGE_LOCAL_ROOT="${FILE_STORAGE_LOCAL_ROOT:-$META_ROOT/runtime/production-like/files}"
|
export FILE_STORAGE_LOCAL_ROOT="${FILE_STORAGE_LOCAL_ROOT:-$META_ROOT/runtime/production-like/files}"
|
||||||
export DEV_AUTO_MIGRATE_ENABLED="${DEV_AUTO_MIGRATE_ENABLED:-false}"
|
export DEV_AUTO_MIGRATE_ENABLED="${DEV_AUTO_MIGRATE_ENABLED:-false}"
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ export DATABASE_URL="${DATABASE_URL:-${GOVOPLAN_PRODUCTION_LIKE_DATABASE_URL:-po
|
|||||||
export GOVOPLAN_DATABASE_URL_PGTOOLS="${GOVOPLAN_DATABASE_URL_PGTOOLS:-${GOVOPLAN_PRODUCTION_LIKE_DATABASE_URL_PGTOOLS:-postgresql://govoplan:govoplan-dev@127.0.0.1:55433/govoplan}}"
|
export GOVOPLAN_DATABASE_URL_PGTOOLS="${GOVOPLAN_DATABASE_URL_PGTOOLS:-${GOVOPLAN_PRODUCTION_LIKE_DATABASE_URL_PGTOOLS:-postgresql://govoplan:govoplan-dev@127.0.0.1:55433/govoplan}}"
|
||||||
export REDIS_URL="${REDIS_URL:-${GOVOPLAN_PRODUCTION_LIKE_REDIS_URL:-redis://127.0.0.1:56379/0}}"
|
export REDIS_URL="${REDIS_URL:-${GOVOPLAN_PRODUCTION_LIKE_REDIS_URL:-redis://127.0.0.1:56379/0}}"
|
||||||
export CELERY_ENABLED="${CELERY_ENABLED:-true}"
|
export CELERY_ENABLED="${CELERY_ENABLED:-true}"
|
||||||
export ENABLED_MODULES="${ENABLED_MODULES:-tenancy,organizations,identity,access,admin,dashboard,policy,audit,campaigns,files,mail,calendar,poll,scheduling,connectors,datasources,dataflow,workflow,views,search,risk_compliance,notifications,docs,ops}"
|
export ENABLED_MODULES="${ENABLED_MODULES:-tenancy,organizations,identity,access,admin,dashboard,policy,audit,campaigns,files,mail,calendar,poll,scheduling,connectors,datasources,dataflow,workflow_engine,workflow,views,search,risk_compliance,notifications,docs,ops}"
|
||||||
export FILE_STORAGE_BACKEND="${FILE_STORAGE_BACKEND:-local}"
|
export FILE_STORAGE_BACKEND="${FILE_STORAGE_BACKEND:-local}"
|
||||||
export FILE_STORAGE_LOCAL_ROOT="${FILE_STORAGE_LOCAL_ROOT:-$META_ROOT/runtime/production-like/files}"
|
export FILE_STORAGE_LOCAL_ROOT="${FILE_STORAGE_LOCAL_ROOT:-$META_ROOT/runtime/production-like/files}"
|
||||||
export DEV_AUTO_MIGRATE_ENABLED="${DEV_AUTO_MIGRATE_ENABLED:-false}"
|
export DEV_AUTO_MIGRATE_ENABLED="${DEV_AUTO_MIGRATE_ENABLED:-false}"
|
||||||
|
|||||||
@@ -116,6 +116,7 @@ PACKAGE_MODULE_REPOS=(
|
|||||||
"$PARENT/govoplan-transparency"
|
"$PARENT/govoplan-transparency"
|
||||||
"$PARENT/govoplan-evaluation"
|
"$PARENT/govoplan-evaluation"
|
||||||
"$PARENT/govoplan-views"
|
"$PARENT/govoplan-views"
|
||||||
|
"$PARENT/govoplan-workflow-engine"
|
||||||
"$PARENT/govoplan-workflow"
|
"$PARENT/govoplan-workflow"
|
||||||
)
|
)
|
||||||
TAG_ONLY_MODULE_REPOS=(
|
TAG_ONLY_MODULE_REPOS=(
|
||||||
|
|||||||
Reference in New Issue
Block a user