Skip to content

ocpm_engine.models

Public request and query-plan models shared by the compatibility API. All models are frozen dataclasses; request models also accept plain dictionaries through from_mapping(...), with ISO-8601 strings (including a trailing Z) parsed as datetimes.

Endpoints

Endpoint enumerates the generic request shapes: process_map, variant_list, timeline, case_throughput, edge_info, case_list, entire_process_map, dynamic_dfg, event_log_summary, lifecycle_dfg, lifecycle_variants, edge_features.

Generic requests

ProcessMiningRequest(
    endpoint: Endpoint | str,
    backbone_type: str | None = None,
    from_date: datetime | None = None,
    to_date: datetime | None = None,
    timeline_period: str = "week",
    status: str | None = None,
    variants: tuple[str, ...] = (),
    network: NetworkFilter = NetworkFilter(),
    source_activity: str | None = None,
    target_activity: str | None = None,
    edge_context: str | None = None,
    limit: int = 20,
    offset: int = 0,
    transitive_closure: bool | None = None,
)

NetworkFilter(activities, edges, min_execution_time, max_execution_time) narrows process-map shapes; its from_mapping reads the API's network_filter dictionary.

Dynamic DFG requests

DynamicDfgRequest(
    backbone_type: str,
    from_date: datetime,
    to_date: datetime,
    filter: DynamicFilter = DynamicFilter(),
)

DynamicFilter holds composable exact case predicates. Every tuple is conjunctive; included predicates must exist, excluded predicates must not, and multiple statuses are alternatives:

Field Meaning
statuses Case status alternatives
included_activities / excluded_activities Activities the case must / must not contain
min_case_execution_time / max_case_execution_time Case duration bounds (seconds)
included_event_attributes / excluded_event_attributes EventAttributeFilter(key, value)actor and context address the first-class event columns, any other key the JSON attribute map
included_related_object_types / excluded_related_object_types Required / forbidden related object types
included_edges / excluded_edges EdgeFilter(source, target, min_execution_time, max_execution_time) transitions
from ocpm_engine import DynamicDfgRequest

request = DynamicDfgRequest.from_mapping(
    {
        "backbone_type": "Order",
        "from_date": "2026-01-01T00:00:00Z",
        "to_date": "2026-02-01T00:00:00Z",
        "filter": {
            "statuses": ["complete"],
            "activities": {"include": ["Order:Approved"]},
            "event_attributes": {
                "include": [{"key": "region", "value": "west"}]
            },
            "edges": {
                "include": [
                    {
                        "source": "Order:Created",
                        "target": "Order:Approved",
                        "max_execution_time": 86400,
                    }
                ]
            },
        },
    }
)

Event-log and lifecycle requests

EventLogRequest(object_type: str, windows: tuple[EventLogWindow, ...])
EventLogWindow(from_date: datetime, to_date: datetime)

LifecycleDfgRequest(object_types, windows, source_activities=(),
                    target_activities=(), minimum_total_frequency=1)

LifecycleVariantRequest(object_types, windows, statuses=(),
                        variant_hashes=(), include_activities=(),
                        exclude_activities=(), minimum_total_frequency=1)

EdgeFeatureRequest(from_date, to_date, slow_threshold=inf,
                   source_object_types=(), target_object_types=(),
                   source_activities=(), target_activities=(),
                   edge_types=(), contexts=(), minimum_frequency=1)

Plans and executions

Type Fields
QueryPlan endpoint, sql, params, strategy
LifecycleDfgExecution strategy, database_rows, expanded_event_rows, counts
WindowedDfgCount object_type, source, target, frequencies
LifecycleVariantExecution strategy, database_rows, counts
WindowedVariantCount object_type, path_hash, activity_path, frequencies
EdgeFeatureExecution strategy, database_rows, features
EdgeFeature source, target, source_object_type, target_object_type, edge_type, frequency, mean_duration, minimum_duration, maximum_duration, standard_deviation, slow_count, slow_rate

frequencies tuples are aligned to the request's windows, zero-filled where a path or edge is absent from a window.

Capabilities and coverage

PgOcpmCapabilities(version, event_log_rows, event_log_batches,
                   event_log_window_batches,
                   lifecycle_dfg_window_counts=False,
                   lifecycle_variant_window_counts=False)

Convenience properties: factorized_event_export, factorized_multi_window_export, lifecycle_dfg_pushdown, lifecycle_variant_pushdown.

BindingIndexCoverage(refreshed_at, source_watermark,
                     event_identity_complete, object_types, activities,
                     event_activities, neighbors, relations)

Observable binding-index declarations and dataset refresh markers, with membership helpers covers_object_type(...), covers_activity(...), covers_event_activity(...), covers_neighbor(...), and covers_relation(...) over BindingNeighborCoverage and BindingRelationCoverage entries.