← All Event Families
Hopsworks

foundation.protocols.ai.hopsworks.*

Hopsworks ML Lifecycle: Feature Store operations, Model Registry, deployments, jobs, training datasets, governance approvals, cost tracking, and dual-bridge Claude correlation. Verified against live Hopsworks enterprise instance (SDK 4.7.3).

37
Events
36
Timeline
1
State

Contents

Design Notes

All 37 events use the foundation.protocols.ai.hopsworks namespace prefix — nested under ai to make clear that Hopsworks is one specific ML platform within the broader foundation.protocols.ai.* governance framework. Other ML platforms follow the same pattern.

1. Session

2 events tracking Hopsworks project connections — from hopsworks.login() to session teardown.

Timeline Event

foundation.protocols.ai.hopsworks.session.start

Emitted when a user connects to a Hopsworks project via hopsworks.login(). This event is the thread root for all subsequent events in the session.

FieldTypeDescription
session_idstringUnique session identifier
project_idintegerHopsworks project ID
project_namestringHopsworks project name
ownerstringProject owner email
hoststringHopsworks cluster hostname
sdk_versionstringHopsworks SDK version
feature_storeobjectFeature store metadata (id, name, online_enabled)
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.session.start",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "project_id": 31932,
    "project_name": "onesecdecomdaicas",
    "owner": "raazesh@vake.works",
    "host": "eu-west.cloud.hopsworks.ai",
    "sdk_version": "4.7.3",
    "feature_store": {
      "id": 20616,
      "name": "onesecdecomdaicas_featurestore",
      "online_enabled": true
    },
    "timestamp": 1775672133000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.session.end

Emitted when a Hopsworks session terminates. Includes operation counts and duration.

FieldTypeDescription
session_idstringSession identifier
project_idintegerHopsworks project ID
duration_msintegerTotal session duration in milliseconds
operationsobjectSummary of operations performed
timestampintegerUnix millisecond timestamp
{
  "type": "foundation.protocols.ai.hopsworks.session.end",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "project_id": 31932,
    "duration_ms": 120000,
    "operations": {
      "feature_group_inserts": 1,
      "feature_group_reads": 3,
      "model_registrations": 1,
      "feature_vector_lookups": 4,
      "jobs_triggered": 1
    },
    "timestamp": 1775672253000,
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$session_start_event_id"
    }
  }
}

2. Feature Store

8 events for feature group and feature view lifecycle — create, insert, read, statistics, delete, and view management.

Timeline Event

foundation.protocols.ai.hopsworks.feature_group.create

Emitted when fs.get_or_create_feature_group() persists a new feature group (on first insert()).

FieldTypeDescription
session_idstringSession identifier
feature_group_idintegerHopsworks feature group ID
namestringFeature group name
versionintegerFeature group version
descriptionstringHuman-readable description
primary_keystring[]Primary key columns
event_timestringEvent time column name
online_enabledbooleanWhether online store is enabled
streambooleanWhether streaming ingestion is enabled
featuresobject[]Feature schema (name, type, primary)
locationstringHDFS/HopsFS storage location
feature_store_idintegerFeature store ID
project_idintegerHopsworks project ID
consent_refsstring[]Data consent event references
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.feature_group.create",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "feature_group_id": 37919,
    "name": "eudr_commodity_origins",
    "version": 1,
    "description": "EUDR commodity origin data with geolocation and deforestation status",
    "primary_key": ["commodity_id"],
    "event_time": "last_verified",
    "online_enabled": true,
    "stream": true,
    "features": [
      {"name": "commodity_id", "type": "string", "primary": true},
      {"name": "commodity_type", "type": "string", "primary": false},
      {"name": "origin_country", "type": "string", "primary": false},
      {"name": "latitude", "type": "double", "primary": false},
      {"name": "longitude", "type": "double", "primary": false},
      {"name": "plot_area_ha", "type": "double", "primary": false},
      {"name": "deforestation_free", "type": "boolean", "primary": false},
      {"name": "forest_cover_2020", "type": "double", "primary": false},
      {"name": "forest_cover_current", "type": "double", "primary": false},
      {"name": "risk_score", "type": "double", "primary": false},
      {"name": "last_verified", "type": "timestamp", "primary": false}
    ],
    "location": "hopsfs://10.240.146.119:8020/apps/hive/warehouse/onesecdecomdaicas_featurestore.db/eudr_commodity_origins_1",
    "feature_store_id": 20616,
    "project_id": 31932,
    "consent_refs": [],
    "timestamp": 1775672240000,
    "actor": "@raazesh:matrix.openearth.network",
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$session_start_event_id"
    }
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.feature_group.insert

Emitted on fg.insert(df). Includes the auto-created materialization job metadata.

FieldTypeDescription
session_idstringSession identifier
feature_group_idintegerFeature group ID
namestringFeature group name
versionintegerFeature group version
rows_insertedintegerNumber of rows inserted
columnsstring[]Column names in the inserted data
operationstringWrite operation type
Values: upsert, insert, overwrite
storagestringTarget storage layer
Values: offline, online, both
materialization_jobobjectAuto-created Spark materialization job metadata
validation_reportobject|nullData validation report (if expectations configured)
consent_refsstring[]Data consent event references
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.feature_group.insert",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "feature_group_id": 37919,
    "name": "eudr_commodity_origins",
    "version": 1,
    "rows_inserted": 100,
    "columns": ["commodity_id", "commodity_type", "origin_country", "latitude", "longitude", "plot_area_ha", "deforestation_free", "forest_cover_2020", "forest_cover_current", "risk_score", "last_verified"],
    "operation": "upsert",
    "storage": "both",
    "materialization_job": {
      "job_id": 37607,
      "name": "eudr_commodity_origins_1_offline_fg_materialization",
      "type": "SPARK",
      "execution_id": 146114,
      "state": "FINISHED",
      "final_status": "SUCCEEDED",
      "duration_ms": 138640,
      "submission_time": "2026-04-08T20:37:25Z"
    },
    "validation_report": null,
    "consent_refs": [],
    "timestamp": 1775672245000,
    "actor": "@raazesh:matrix.openearth.network",
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$session_start_event_id"
    }
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.feature_group.read

Emitted on fg.read() or fv.get_batch_data().

FieldTypeDescription
session_idstringSession identifier
feature_group_idintegerFeature group ID
namestringFeature group name
versionintegerFeature group version
rows_readintegerNumber of rows read
columnsstring[]Column names read
dtypesobjectSelected column data types
purposestringRead purpose
Values: model_training, analysis, export, debugging
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.feature_group.read",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "feature_group_id": 37919,
    "name": "eudr_commodity_origins",
    "version": 1,
    "rows_read": 100,
    "columns": ["commodity_id", "commodity_type", "origin_country", "latitude", "longitude", "plot_area_ha", "deforestation_free", "forest_cover_2020", "forest_cover_current", "risk_score", "last_verified"],
    "dtypes": {
      "commodity_id": "object",
      "latitude": "float64",
      "deforestation_free": "bool",
      "last_verified": "datetime64[ns, UTC]"
    },
    "purpose": "model_training",
    "timestamp": 1775672415000,
    "actor": "@raazesh:matrix.openearth.network",
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$session_start_event_id"
    }
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.feature_group.statistics

Emitted when feature group statistics are computed server-side.

FieldTypeDescription
session_idstringSession identifier
feature_group_idintegerFeature group ID
namestringFeature group name
versionintegerFeature group version
computed_server_sidebooleanWhether statistics were computed on server
timestampintegerUnix millisecond timestamp
{
  "type": "foundation.protocols.ai.hopsworks.feature_group.statistics",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "feature_group_id": 37919,
    "name": "eudr_commodity_origins",
    "version": 1,
    "computed_server_side": true,
    "timestamp": 1775672420000,
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$session_start_event_id"
    }
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.feature_group.delete_records

Emitted when specific records are deleted from a feature group by primary key.

FieldTypeDescription
session_idstringSession identifier
feature_group_idintegerFeature group ID
namestringFeature group name
versionintegerFeature group version
records_deletedintegerNumber of records deleted
primary_keysstring[]Primary key values of deleted records
reasonstringReason for deletion
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.feature_group.delete_records",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "feature_group_id": 37919,
    "name": "eudr_commodity_origins",
    "version": 1,
    "records_deleted": 5,
    "primary_keys": ["COM-0001", "COM-0002", "COM-0003", "COM-0004", "COM-0005"],
    "reason": "data_correction",
    "timestamp": 1775672500000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.feature_group.delete

Emitted when an entire feature group version is deleted.

FieldTypeDescription
session_idstringSession identifier
feature_group_idintegerFeature group ID
namestringFeature group name
versionintegerFeature group version
reasonstringReason for deletion
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.feature_group.delete",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "feature_group_id": 37919,
    "name": "eudr_commodity_origins",
    "version": 1,
    "reason": "replaced_by_v2",
    "timestamp": 1775672600000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.feature_view.create

Emitted when a feature view is created, joining one or more feature groups with a label selection.

FieldTypeDescription
session_idstringSession identifier
namestringFeature view name
versionintegerFeature view version
descriptionstringHuman-readable description
labelsstring[]Label columns
source_feature_groupsobject[]Source feature groups (name, version, id)
feature_store_idintegerFeature store ID
project_idintegerHopsworks project ID
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.feature_view.create",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "name": "eudr_risk_assessment",
    "version": 1,
    "description": "Feature view for EUDR deforestation risk assessment",
    "labels": ["deforestation_free"],
    "source_feature_groups": [
      {"name": "eudr_commodity_origins", "version": 1, "id": 37919}
    ],
    "feature_store_id": 20616,
    "project_id": 31932,
    "timestamp": 1775672486000,
    "actor": "@raazesh:matrix.openearth.network",
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$session_start_event_id"
    }
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.feature_view.delete

Emitted when a feature view version is deleted.

FieldTypeDescription
namestringFeature view name
versionintegerFeature view version
reasonstringReason for deletion
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.feature_view.delete",
  "content": {
    "name": "eudr_risk_assessment",
    "version": 1,
    "reason": "replaced_by_v2",
    "timestamp": 1775672700000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}

3. Feature Serving

1 event for online/batch feature vector retrieval.

Timeline Event

foundation.protocols.ai.hopsworks.feature_view.serve

Emitted on fv.get_feature_vector() or fv.get_feature_vectors().

FieldTypeDescription
session_idstringSession identifier
feature_viewstringFeature view name
feature_view_versionintegerFeature view version
modestringRetrieval mode
Values: single, batch
entriesobject[]Lookup keys
rows_returnedintegerNumber of rows returned
columnsstring[]Returned feature columns
sourcestringFeature store source
Values: online_store, offline_store
purposestringRetrieval purpose
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.feature_view.serve",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "feature_view": "eudr_risk_assessment",
    "feature_view_version": 1,
    "mode": "batch",
    "entries": [
      {"commodity_id": "COM-0023"},
      {"commodity_id": "COM-0048"},
      {"commodity_id": "COM-0072"}
    ],
    "rows_returned": 3,
    "columns": ["commodity_id", "commodity_type", "origin_country", "latitude", "longitude", "plot_area_ha", "forest_cover_2020", "forest_cover_current", "risk_score", "last_verified"],
    "source": "online_store",
    "purpose": "inference",
    "timestamp": 1775672885000,
    "actor": "@raazesh:matrix.openearth.network",
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$session_start_event_id"
    }
  }
}

4. Training

2 events for training dataset creation and deletion.

Timeline Event

foundation.protocols.ai.hopsworks.training_dataset.create

Emitted on fv.train_test_split() or fs.create_training_dataset().

FieldTypeDescription
session_idstringSession identifier
feature_viewstringSource feature view name
feature_view_versionintegerFeature view version
training_dataset_versionintegerTraining dataset version
splitobjectTrain/test split metadata (rows, ratio)
featuresstring[]Feature columns included
label_columnsstring[]Label columns
purposestringTraining purpose
consent_refsstring[]Data consent event references
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.training_dataset.create",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "feature_view": "eudr_risk_assessment",
    "feature_view_version": 1,
    "training_dataset_version": 1,
    "split": {
      "train_rows": 80,
      "test_rows": 20,
      "ratio": {"train": 0.8, "test": 0.2}
    },
    "features": ["commodity_id", "commodity_type", "origin_country", "latitude", "longitude", "plot_area_ha", "forest_cover_2020", "forest_cover_current", "risk_score", "last_verified"],
    "label_columns": ["deforestation_free"],
    "purpose": "eudr_risk_classification",
    "consent_refs": [],
    "timestamp": 1775672496000,
    "actor": "@raazesh:matrix.openearth.network",
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$session_start_event_id"
    }
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.training_dataset.delete

Emitted when a training dataset version is deleted.

FieldTypeDescription
feature_viewstringSource feature view name
training_dataset_versionintegerTraining dataset version
reasonstringReason for deletion
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.training_dataset.delete",
  "content": {
    "feature_view": "eudr_risk_assessment",
    "training_dataset_version": 1,
    "reason": "superseded_by_v2",
    "timestamp": 1775672800000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}

5. Model Registry

5 events for model registration, download, deletion, evaluation, and tagging.

Timeline Event

foundation.protocols.ai.hopsworks.model.register

Emitted on model.save() (not create_model() which is lazy).

FieldTypeDescription
session_idstringSession identifier
model_idstringUnique model identifier (name_version)
namestringModel name
versionintegerModel version
descriptionstringModel description
frameworkstringML framework
Values: PYTHON, TENSORFLOW, TORCH, SKLEARN
training_metricsobjectMetrics as string-encoded decimals
model_schemaobject|nullInput/output schema
model_pathstringHopsFS model path
model_files_pathstringHopsFS path to model files
filesstring[]Uploaded model files
feature_view_refstring|nullFeature view used for training
training_dataset_versioninteger|nullTraining dataset version used
project_idintegerHopsworks project ID
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.model.register",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "model_id": "eudr_risk_classifier_3",
    "name": "eudr_risk_classifier",
    "version": 3,
    "description": "Random Forest classifier for EUDR deforestation risk assessment (v3)",
    "framework": "PYTHON",
    "training_metrics": {
      "accuracy": "0.7500",
      "f1": "0.8571",
      "precision": "0.7895",
      "recall": "0.9375"
    },
    "model_schema": null,
    "model_path": "/Projects/onesecdecomdaicas/Models/eudr_risk_classifier",
    "model_files_path": "/Projects/onesecdecomdaicas/Models/eudr_risk_classifier/3/Files",
    "files": ["eudr_risk_model.pkl", "predict_example.py"],
    "feature_view_ref": null,
    "training_dataset_version": null,
    "project_id": 31932,
    "timestamp": 1775672475000,
    "actor": "@raazesh:matrix.openearth.network",
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$session_start_event_id"
    }
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.model.download

Emitted when a model is downloaded from the Model Registry to a local path.

FieldTypeDescription
session_idstringSession identifier
model_idstringModel identifier
namestringModel name
versionintegerModel version
local_pathstringLocal download path
purposestringDownload purpose
Values: evaluation, deployment, export, debugging
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.model.download",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "model_id": "eudr_risk_classifier_1",
    "name": "eudr_risk_classifier",
    "version": 1,
    "local_path": "/tmp/model_download/",
    "purpose": "evaluation",
    "timestamp": 1775672600000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.model.delete

Emitted when a model version is deleted from the registry.

FieldTypeDescription
model_idstringModel identifier
namestringModel name
versionintegerModel version
reasonstringReason for deletion
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.model.delete",
  "content": {
    "model_id": "eudr_risk_classifier_1",
    "name": "eudr_risk_classifier",
    "version": 1,
    "reason": "replaced_by_v3",
    "timestamp": 1775672700000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.model.evaluate

DAICAS governance event — emitted by external evaluation pipeline. Records evaluation metrics against thresholds.

FieldTypeDescription
model_idstringModel identifier
namestringModel name
versionintegerModel version
evaluation_datasetobjectEvaluation dataset reference (feature_view, version, rows)
metricsobjectEvaluation metrics as string-encoded decimals
passedbooleanWhether the model passed all thresholds
thresholdsobjectMinimum threshold values
evaluatorstringMatrix user ID of evaluator
timestampintegerUnix millisecond timestamp
{
  "type": "foundation.protocols.ai.hopsworks.model.evaluate",
  "content": {
    "model_id": "eudr_risk_classifier_3",
    "name": "eudr_risk_classifier",
    "version": 3,
    "evaluation_dataset": {
      "feature_view": "eudr_risk_assessment",
      "version": 1,
      "rows": 20
    },
    "metrics": {
      "accuracy": "0.7500",
      "f1": "0.8571",
      "precision": "0.7895",
      "recall": "0.9375"
    },
    "passed": true,
    "thresholds": {
      "accuracy_min": "0.7000",
      "f1_min": "0.7500"
    },
    "evaluator": "@ml_reviewer:matrix.openearth.network",
    "timestamp": 1775672900000
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.model.tag

Emitted when a tag is applied to a model (e.g., EU AI Act risk classification).

FieldTypeDescription
model_idstringModel identifier
namestringModel name
versionintegerModel version
tag_namestringTag key
tag_valuestringTag value
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.model.tag",
  "content": {
    "model_id": "eudr_risk_classifier_3",
    "name": "eudr_risk_classifier",
    "version": 3,
    "tag_name": "eu_ai_act_risk_class",
    "tag_value": "limited",
    "timestamp": 1775672950000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}

6. Deployment

5 events for model deployment lifecycle — create, start, stop, predict, and delete.

Timeline Event

foundation.protocols.ai.hopsworks.deployment.create

Emitted when a model serving deployment is created.

FieldTypeDescription
session_idstringSession identifier
deployment_idintegerHopsworks deployment ID
deployment_namestringDeployment name
model_namestringModel being deployed
model_versionintegerModel version
script_filestringServing script path
api_protocolstringAPI protocol
Values: REST, GRPC
serving_toolstringServing infrastructure
Values: KSERVE, DEFAULT
project_idintegerHopsworks project ID
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.deployment.create",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "deployment_id": 8219,
    "deployment_name": "eudrriskv3",
    "model_name": "eudr_risk_classifier",
    "model_version": 3,
    "script_file": "/Projects/onesecdecomdaicas/Models/eudr_risk_classifier/3/Files/predict_example.py",
    "api_protocol": "REST",
    "serving_tool": "KSERVE",
    "project_id": 31932,
    "timestamp": 1775673000000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.deployment.start

Emitted when a deployment transitions to RUNNING state.

FieldTypeDescription
deployment_idintegerDeployment ID
deployment_namestringDeployment name
model_namestringModel being served
model_versionintegerModel version
statestringDeployment state
serving_toolstringServing infrastructure
resourcesobjectResource allocation (num_instances)
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.deployment.start",
  "content": {
    "deployment_id": 8219,
    "deployment_name": "eudrriskv3",
    "model_name": "eudr_risk_classifier",
    "model_version": 3,
    "state": "RUNNING",
    "serving_tool": "KSERVE",
    "resources": {
      "num_instances": 1
    },
    "timestamp": 1775673070000,
    "actor": "@raazesh:matrix.openearth.network",
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$deployment_create_event_id"
    }
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.deployment.stop

Emitted when a deployment is stopped.

FieldTypeDescription
deployment_idintegerDeployment ID
deployment_namestringDeployment name
statestringDeployment state (STOPPED)
reasonstringReason for stopping
Values: manual, scaling, error, quota
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.deployment.stop",
  "content": {
    "deployment_id": 8219,
    "deployment_name": "eudrriskv3",
    "state": "STOPPED",
    "reason": "manual",
    "timestamp": 1775673200000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.deployment.predict

Emitted when a prediction is made through a deployed model.

FieldTypeDescription
deployment_namestringDeployment name
model_namestringModel name
model_versionintegerModel version
input_shapeinteger[]Input tensor shape
outputobjectPrediction output
latency_msintegerPrediction latency in milliseconds
api_protocolstringAPI protocol used
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.deployment.predict",
  "content": {
    "deployment_name": "eudrriskv3",
    "model_name": "eudr_risk_classifier",
    "model_version": 3,
    "input_shape": [1, 6],
    "output": {"predictions": [1]},
    "latency_ms": 45,
    "api_protocol": "REST",
    "timestamp": 1775673100000,
    "actor": "@raazesh:matrix.openearth.network",
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$deployment_create_event_id"
    }
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.deployment.delete

Emitted when a deployment is deleted.

FieldTypeDescription
deployment_idintegerDeployment ID
deployment_namestringDeployment name
reasonstringReason for deletion
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.deployment.delete",
  "content": {
    "deployment_id": 8219,
    "deployment_name": "eudrriskv3",
    "reason": "replaced_by_v4",
    "timestamp": 1775673300000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}

7. Jobs

3 events for Spark/Python job lifecycle — start, complete, and fail.

Timeline Event

foundation.protocols.ai.hopsworks.job.start

Emitted when a job is triggered (e.g., by feature group insert materialization).

FieldTypeDescription
session_idstringSession identifier
job_idintegerHopsworks job ID
job_namestringJob name
job_typestringJob type
Values: SPARK, PYSPARK, PYTHON, FLINK
execution_idintegerExecution ID
triggered_bystringWhat triggered the job
trigger_refobjectReference to trigger source (feature_group, version, id)
project_idintegerHopsworks project ID
timestampintegerUnix millisecond timestamp
{
  "type": "foundation.protocols.ai.hopsworks.job.start",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "job_id": 37607,
    "job_name": "eudr_commodity_origins_1_offline_fg_materialization",
    "job_type": "SPARK",
    "execution_id": 146114,
    "triggered_by": "feature_group_insert",
    "trigger_ref": {
      "feature_group": "eudr_commodity_origins",
      "version": 1,
      "id": 37919
    },
    "project_id": 31932,
    "timestamp": 1775672245000,
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$session_start_event_id"
    }
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.job.complete

Emitted when a job finishes successfully.

FieldTypeDescription
job_idintegerJob ID
job_namestringJob name
job_typestringJob type
execution_idintegerExecution ID
statestringFinal state (FINISHED)
final_statusstringFinal status (SUCCEEDED)
duration_msintegerJob duration in milliseconds
submission_timestringISO 8601 submission timestamp
project_idintegerHopsworks project ID
timestampintegerUnix millisecond timestamp
{
  "type": "foundation.protocols.ai.hopsworks.job.complete",
  "content": {
    "job_id": 37607,
    "job_name": "eudr_commodity_origins_1_offline_fg_materialization",
    "job_type": "SPARK",
    "execution_id": 146114,
    "state": "FINISHED",
    "final_status": "SUCCEEDED",
    "duration_ms": 138640,
    "submission_time": "2026-04-08T20:37:25Z",
    "project_id": 31932,
    "timestamp": 1775672383000,
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$job_start_event_id"
    }
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.job.fail

Emitted when a job fails.

FieldTypeDescription
job_idintegerJob ID
job_namestringJob name
job_typestringJob type
execution_idintegerExecution ID
statestringFinal state (FINISHED)
final_statusstringFinal status (FAILED)
duration_msintegerJob duration before failure
errorstringError message
project_idintegerHopsworks project ID
timestampintegerUnix millisecond timestamp
{
  "type": "foundation.protocols.ai.hopsworks.job.fail",
  "content": {
    "job_id": 37607,
    "job_name": "eudr_commodity_origins_1_offline_fg_materialization",
    "job_type": "SPARK",
    "execution_id": 146115,
    "state": "FINISHED",
    "final_status": "FAILED",
    "duration_ms": 5200,
    "error": "OutOfMemoryError: Java heap space",
    "project_id": 31932,
    "timestamp": 1775672400000,
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$job_start_event_id"
    }
  }
}

8. Data Management

2 events for file upload and download to/from Hopsworks project storage.

Timeline Event

foundation.protocols.ai.hopsworks.data.upload

Emitted when a file is uploaded to Hopsworks project storage.

FieldTypeDescription
session_idstringSession identifier
source_pathstringLocal source file path
destination_pathstringHopsworks destination path
size_bytesintegerFile size in bytes
project_idintegerHopsworks project ID
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.data.upload",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "source_path": "predict_example.py",
    "destination_path": "Models/predict_example.py",
    "size_bytes": 352,
    "project_id": 31932,
    "timestamp": 1775672810000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.data.download

Emitted when a file is downloaded from Hopsworks project storage.

FieldTypeDescription
session_idstringSession identifier
source_pathstringHopsworks source path
local_pathstringLocal download path
size_bytesintegerFile size in bytes
purposestringDownload purpose
project_idintegerHopsworks project ID
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.data.download",
  "content": {
    "session_id": "hw_sess_20260408T203533Z",
    "source_path": "Models/eudr_risk_classifier/1/Files/eudr_risk_model.pkl",
    "local_path": "/tmp/model_download/eudr_risk_model.pkl",
    "size_bytes": 119749,
    "purpose": "local_evaluation",
    "project_id": 31932,
    "timestamp": 1775672820000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}

9. Governance

8 events for model approval/rejection, data lineage, quality checks, audit trails, cost tracking, and quota enforcement. These events have no direct SDK trigger — they are emitted by the Hopsworks Bridge daemon’s governance layer (📐).

Timeline Event

foundation.protocols.ai.hopsworks.model.approve

📐 Ties into the Matrix approval.request/response pattern. Emitted when a model version is approved for production.

FieldTypeDescription
model_idstringModel identifier
namestringModel name
versionintegerModel version
approverstringMatrix user ID of approver
conditionsstring[]Conditions that were met
approval_event_idstringMatrix approval response event ID
approval_roomstringMatrix governance room ID
metrics_at_approvalobjectModel metrics at time of approval
timestampintegerUnix millisecond timestamp
{
  "type": "foundation.protocols.ai.hopsworks.model.approve",
  "content": {
    "model_id": "eudr_risk_classifier_3",
    "name": "eudr_risk_classifier",
    "version": 3,
    "approver": "@alice:matrix.openearth.network",
    "conditions": ["accuracy >= 0.70", "f1 >= 0.75", "bias_check_passed"],
    "approval_event_id": "$matrix_approval_response_event_id",
    "approval_room": "!governance:matrix.openearth.network",
    "metrics_at_approval": {
      "accuracy": "0.7500",
      "f1": "0.8571"
    },
    "timestamp": 1775673000000
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.model.reject

📐 Emitted when a model version is rejected by a governance reviewer.

FieldTypeDescription
model_idstringModel identifier
namestringModel name
versionintegerModel version
rejectorstringMatrix user ID of rejector
reasonstringRejection reason
rejection_event_idstringMatrix approval response event ID
approval_roomstringMatrix governance room ID
timestampintegerUnix millisecond timestamp
{
  "type": "foundation.protocols.ai.hopsworks.model.reject",
  "content": {
    "model_id": "eudr_risk_classifier_2",
    "name": "eudr_risk_classifier",
    "version": 2,
    "rejector": "@bob:matrix.openearth.network",
    "reason": "f1 below threshold for production use",
    "rejection_event_id": "$matrix_approval_response_event_id",
    "approval_room": "!governance:matrix.openearth.network",
    "timestamp": 1775673100000
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.data.lineage

📐 Records the end-to-end data lineage from feature groups through transforms to a model.

FieldTypeDescription
pipeline_namestringPipeline identifier
source_feature_groupsobject[]Source feature groups (name, version, id)
targetobjectTarget artifact (type, name, version, id)
transformsstring[]Transformation steps applied
consent_chainstring[]Chain of consent event references
timestampintegerUnix millisecond timestamp
{
  "type": "foundation.protocols.ai.hopsworks.data.lineage",
  "content": {
    "pipeline_name": "eudr_risk_training_pipeline",
    "source_feature_groups": [
      {"name": "eudr_commodity_origins", "version": 1, "id": 37919}
    ],
    "target": {
      "type": "model",
      "name": "eudr_risk_classifier",
      "version": 3,
      "id": "eudr_risk_classifier_3"
    },
    "transforms": ["train_test_split(0.8/0.2)", "RandomForestClassifier(n_estimators=50)"],
    "consent_chain": [],
    "timestamp": 1775673200000
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.data.quality

📐 Records data quality check results for a feature group.

FieldTypeDescription
feature_group_idintegerFeature group ID
namestringFeature group name
versionintegerFeature group version
checks_passedintegerNumber of checks passed
checks_failedintegerNumber of checks failed
checksobject[]Individual check results
timestampintegerUnix millisecond timestamp
{
  "type": "foundation.protocols.ai.hopsworks.data.quality",
  "content": {
    "feature_group_id": 37919,
    "name": "eudr_commodity_origins",
    "version": 1,
    "checks_passed": 8,
    "checks_failed": 1,
    "checks": [
      {"name": "null_check_commodity_id", "passed": true},
      {"name": "range_check_latitude", "passed": true, "min": -10.0, "max": 10.0},
      {"name": "range_check_risk_score", "passed": true, "min": 0.0, "max": 1.0},
      {"name": "completeness_check", "passed": false, "completeness": "0.97", "threshold": "0.99"}
    ],
    "timestamp": 1775673300000
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.audit.access

📐 Records data access for audit trail (EU AI Act Art. 12 record-keeping).

FieldTypeDescription
resource_typestringType of resource accessed
Values: feature_group, model, training_dataset, deployment
resource_idintegerResource ID
resource_namestringResource name
operationstringOperation performed
Values: read, write, delete, predict
rows_accessedintegerNumber of rows accessed
purposestringAccess purpose
consent_refstring|nullConsent event reference
project_idintegerHopsworks project ID
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.audit.access",
  "content": {
    "resource_type": "feature_group",
    "resource_id": 37919,
    "resource_name": "eudr_commodity_origins",
    "operation": "read",
    "rows_accessed": 100,
    "purpose": "model_training",
    "consent_ref": null,
    "project_id": 31932,
    "timestamp": 1775672415000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.audit.export

📐 Records data export from Hopsworks to external systems with data minimisation tracking.

FieldTypeDescription
resource_typestringType of resource exported
resource_idintegerResource ID
resource_namestringResource name
destinationstringExport destination
rows_exportedintegerNumber of rows exported
data_hashstringSHA-256 hash of exported data
consent_refstring|nullConsent event reference
minimisation_appliedbooleanWhether data minimisation was applied
project_idintegerHopsworks project ID
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.audit.export",
  "content": {
    "resource_type": "feature_group",
    "resource_id": 37919,
    "resource_name": "eudr_commodity_origins",
    "destination": "local_filesystem",
    "rows_exported": 100,
    "data_hash": "sha256:a1b2c3d4e5...",
    "consent_ref": null,
    "minimisation_applied": false,
    "project_id": 31932,
    "timestamp": 1775672420000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}
State Event

foundation.protocols.ai.hopsworks.cost

📐 Periodic cost aggregation, same pattern as ai.cost for Claude API. Tracks compute, storage, and serving costs.

FieldTypeDescription
project_idintegerHopsworks project ID
project_namestringProject name
periodstringCost period (ISO date)
computeobjectCompute costs (spark_jobs, duration, cpu_hours, cost)
storageobjectStorage costs (feature_store_gb, model_registry_gb, cost/month)
servingobjectServing costs (predictions, serving_hours, cost)
total_cost_eurstringTotal cost as decimal string (EUR)
currencystringISO 4217 currency code
timestampintegerUnix millisecond timestamp
{
  "type": "foundation.protocols.ai.hopsworks.cost",
  "state_key": "",
  "content": {
    "project_id": 31932,
    "project_name": "onesecdecomdaicas",
    "period": "2026-04-08",
    "compute": {
      "spark_jobs": 1,
      "total_duration_ms": 138640,
      "estimated_cpu_hours": "0.0385",
      "estimated_cost_eur": "0.02"
    },
    "storage": {
      "feature_store_gb": "0.001",
      "model_registry_gb": "0.001",
      "estimated_cost_eur_month": "0.01"
    },
    "serving": {
      "predictions": 0,
      "serving_hours": "0.0000",
      "estimated_cost_eur": "0.00"
    },
    "total_cost_eur": "0.03",
    "currency": "EUR",
    "timestamp": 1775673600000
  }
}
Timeline Event

foundation.protocols.ai.hopsworks.quota.exceeded

📐 Emitted when a project or user exceeds a configured resource quota (compute, storage, serving).

FieldTypeDescription
project_idintegerHopsworks project ID
quota_typestringType of quota exceeded
Values: compute_hours, storage_gb, serving_hours, cost_eur
limit_valuestringConfigured quota limit as decimal string
actual_valuestringActual value that exceeded the limit
action_takenstringAction taken by the system
Values: warning, throttled, blocked
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.quota.exceeded",
  "content": {
    "project_id": 31932,
    "quota_type": "compute_hours",
    "limit_value": "10.0000",
    "actual_value": "10.2500",
    "action_taken": "warning",
    "timestamp": 1775674000000,
    "actor": "@raazesh:matrix.openearth.network"
  }
}

10. Dual-Bridge Correlation

1 event linking Hopsworks data reads to Claude AI analysis — creating a complete audit trail across both bridges. Verified 2026-04-08: Hopsworks SDK + Anthropic SDK in same Python context.

Timeline Event

foundation.protocols.ai.hopsworks.claude.analysis

Emitted when Claude analyses data from Hopsworks Feature Store. Links the ai.hopsworks.feature_group.read event to the ai.claude.prompt/response events, creating a complete audit trail: what data was read, what AI was asked, what it answered.

FieldTypeDescription
session_idstringHopsworks session identifier
data_sourceobjectData source reference (type, feature_group, version, id, rows_read, read_event_id)
claude_interactionobjectClaude interaction reference (model, tokens, stop_reason, event_ids)
purposestringAnalysis purpose (EU AI Act Art. 12)
data_minimisationobjectData minimisation record (raw_data_sent, summary_only, fields_included)
timestampintegerUnix millisecond timestamp
actorstringMatrix user ID
{
  "type": "foundation.protocols.ai.hopsworks.claude.analysis",
  "content": {
    "session_id": "hw_sess_20260408T214030Z",
    "data_source": {
      "type": "feature_group_read",
      "feature_group": "eudr_commodity_origins",
      "version": 1,
      "feature_group_id": 37919,
      "rows_read": 100,
      "read_event_id": "$hopsworks_read_event_id"
    },
    "claude_interaction": {
      "model": "claude-sonnet-4-20250514",
      "input_tokens": 420,
      "output_tokens": 324,
      "stop_reason": "end_turn",
      "prompt_event_id": "$claude_prompt_event_id",
      "response_event_id": "$claude_response_event_id"
    },
    "purpose": "eudr_compliance_risk_analysis",
    "data_minimisation": {
      "raw_data_sent": false,
      "summary_only": true,
      "fields_included": ["commodity_types", "countries", "deforestation_free_pct", "avg_risk_score"]
    },
    "timestamp": 1775674846000,
    "actor": "@raazesh:matrix.openearth.network",
    "m.relates_to": {
      "rel_type": "m.thread",
      "event_id": "$session_start_event_id"
    }
  }
}

Key governance fields: data_minimisation.raw_data_sent: false proves raw Feature Store data never left the commons; only a summary was sent to Claude (DCPAI “data stays home; questions travel” principle). data_source.read_event_id + claude_interaction.prompt_event_id creates a provenance chain from data read through AI analysis. purpose records why the AI was consulted (EU AI Act Art. 12 record-keeping).

Implementation Status

37 of 37 events have verified JSON schemas, tested against matrix.org via the Hopsworks Bridge daemon (Python + matrix-nio). All event schemas refined against live Hopsworks enterprise instance (SDK 4.7.3, project onesecdecomdaicas, ID 31932).

Event TypeCategoryMatrix TypeStatus
session.startSessionTimelineTested
session.endSessionTimelineTested
feature_group.createFeature StoreTimelineTested
feature_group.insertFeature StoreTimelineTested
feature_group.readFeature StoreTimelineTested
feature_group.statisticsFeature StoreTimelineTested
feature_group.delete_recordsFeature StoreTimelineTested
feature_group.deleteFeature StoreTimelineTested
feature_view.createFeature StoreTimelineTested
feature_view.deleteFeature StoreTimelineTested
feature_view.serveFeature ServingTimelineTested
training_dataset.createTrainingTimelineTested
training_dataset.deleteTrainingTimelineTested
model.registerModel RegistryTimelineTested
model.downloadModel RegistryTimelineTested
model.deleteModel RegistryTimelineTested
model.evaluateModel RegistryTimelineTested
model.tagModel RegistryTimelineTested
deployment.createDeploymentTimelineTested
deployment.startDeploymentTimelineTested
deployment.stopDeploymentTimelineTested
deployment.predictDeploymentTimelineTested
deployment.deleteDeploymentTimelineTested
job.startJobsTimelineTested
job.completeJobsTimelineTested
job.failJobsTimelineTested
data.uploadData MgmtTimelineTested
data.downloadData MgmtTimelineTested
model.approveGovernanceTimelineTested
model.rejectGovernanceTimelineTested
data.lineageGovernanceTimelineTested
data.qualityGovernanceTimelineTested
audit.accessGovernanceTimelineTested
audit.exportGovernanceTimelineTested
costGovernanceStateTested
quota.exceededGovernanceTimelineTested
claude.analysisDual-BridgeTimelineTested

Related Event Families

FamilyRelationship
ai.claude.* Claude session recording. The claude.analysis event links Hopsworks data reads to Claude AI analysis via dual-bridge correlation.
ai.* Vendor-neutral governance layer. Hopsworks ML operations can be wrapped in ai.intention → ai.decision → ai.effect flows for high-risk deployments.
ai.cost Vendor-agnostic cost accumulator. The hopsworks.cost state event follows the same pattern, tracking compute, storage, and serving costs separately.
data.* Data consent gates what data enters the Feature Store. consent_refs fields link to data.consent events.
eudr.* EUDR compliance workflow. The EUDR commodity origins feature group provides geolocation and deforestation data for Reference EUDR deployment’s supply chain analysis.