Meta-Data Management
The ecosystem platform is designed to manage the meta-data of all the configurations related to data formats for algorithms, scoring engine specific functionality and other configurations. The meta-data management is a key feature of the ecosystem platform that allows users to manage the configurations of the data formats and other configurations. Using the Workbench, Python or API’s users can manage the meta-data configurations.
Model Configurations
The ecosystem_meta
database contains all the base configuration definitions. Some core meta-data definitions include:
Projects - The project configuration is used to define the project and its associated configurations.
Frames - Feature Store configurations are defined in the frame configuration.
Predictors - The predictor configuration is used to define model predictors and associated configurations.
DynamicEngagements - The dynamic engagement configuration is used to define the dynamic engagement and interactions configurations.
Data Formats
The ecosystem platform supports various data formats for the configurations.
Projects
Here is a simplified example of the projects meta-data.
{
"project_collections": [
{
"database": "experimentation_demos",
"collection": "ab_testing_messages"
},
{
"database": "experimentation_demos",
"collection": "ab_testing_options"
}
],
"project_files": [
{
"name": "AB_testing_messages.csv",
"absolutePath": "/data/AB_testing_messages.csv",
"lastModified": 1654777306884,
"canRead": true,
"isDirectory": false
}
],
"purpose": "Demo",
"configuration": "",
"project_calendars": [
{
"name": "Monthly Rituals",
"date": "NA"
}
],
"userid": "ecosystem",
"uuid": "8162f900-2694-4d59-b41b-e3abaa7b3ff5",
"project_end_date": "2022-12-31",
"project_id": "AB Testing",
"project_owner": "ecosystem",
"project_start_date": "2022-06-01",
"module_metadata": {
"reviewed_by": "",
"image_path": "",
"icon_path": "",
"name": "AB_Testing_0.1",
"module_owner": "",
"description": "",
"categories": "",
"created_by": "",
"version": "",
"fact_sheet_path": "",
"contact_email": "",
"status": ""
},
"project_type": "Experimentation",
"deployment_step": [
{
"budget_tracker": {
"budget_parameters_database": "",
"budget_parameters_datasource": "mongodb",
"budget_id": "",
"description": "",
"budget_parameters_table_collection": "",
"x_axis_datasource": "offer_matrix",
"x_axis_name": "",
"acc_namesource": "",
"y_axis_name": "",
"y_axis_namesource": "",
"acc_name": "",
"budget_strategy": "",
"x_axis_namesource": "",
"acc_datasource": "offer_matrix",
"y_axis_datasource": "offer_matrix"
},
"date": "2022-09-18",
"complexity": "Low",
"plugins": {
"post_score_class_text": "PlatformDynamicEngagement.java",
"post_score_class_code": "",
"api_endpoint_code": "",
"pre_score_class_text": "",
"pre_score_class_code": ""
},
"model_configuration": {},
"setup_offer_matrix": {
"offer_lookup_id": "",
"database": "",
"table_collection": "",
"datasource": "mongodb"
},
"project_status": "experiment",
"description": "Deployment for AB testing Demo",
"multi_armed_bandit": {
"epsilon": "0.5",
"duration": 0,
"pulse_responder_uuid": "53adf85f-0917-4645-a94d-8d9eedf276c2"
},
"whitelist": {
"table_collection": "",
"datasource": "mongodb",
"database": ""
},
"version": "001",
"model_selector": {
"selector_column": "",
"lookup": "",
"database": "",
"selector": "",
"table_collection": "",
"datasource": "mongodb"
},
"performance_expectation": "High",
"allocator": {
"allocator_id": "ecosystem_allocator",
"no_interaction_with": [
{
"version": "002",
"deployment_id": "dynamic_experiment_offer"
},
{
"version": "003",
"deployment_id": "dynamic_experiment_offer"
},
{
"version": "004",
"deployment_id": "dynamic_experiment_offer"
},
{
"version": "005",
"deployment_id": "dynamic_experiment_offer"
}
],
"interacts_with_experiments": 1,
"component": "",
"keep_in_experiment": 1,
"component_ranking_field": ""
},
"pattern_selector": {
"pattern": "",
"duration": ""
},
"project_id": "AB Testing",
"paths": {
"logging_collection_response": "ecosystemruntime_response",
"logging_collection": "ecosystemruntime",
"logging_database": "logging",
"mongo_server_port": "ecosystem-server:54445",
"scoring_engine_path_prod": "http://ecosystem-runtime2:8091",
"models_path": "/data/deployed/",
"mongo_connect": ",
"data_path": "/data/",
"runtime_path": "http://ecosystem-runtime:8091",
"build_server_path": "",
"scoring_engine_path_dev": "http://ecosystem-runtime:8091",
"aws_container_resource": "",
"scoring_engine_path_test": "http://ecosystem-runtime1:8091",
"git_repo_path_branch": "abtesting",
"download_path": "https://hub.docker.com/u/ecosystemai",
"mongo_ecosystem_password": "EcoEco321",
"mongo_ecosystem_user": "ecosystem_user",
"git_repo_path": "https://github.com/ecosystemai/ecosystem-runtime.git"
},
"updated_by": "admin@ecosystem.ai",
"options": {
"is_offer_matrix": false,
"is_multi_armed_bandit": true,
"is_enable_plugins": true,
"is_whitelist": false,
"is_corpora": false,
"is_custom_api": false,
"is_budget_tracking": false,
"is_params_from_data_source": true,
"is_model_selector": false,
"is_generate_dashboards": false,
"is_pattern_selector": false,
"is_prediction_model": false
},
"corpora": {
"corpora": ""
},
"parameter_access": {
"lookup": {
"value": "'123'",
"key": "customer"
},
"create_virtual_variables": false,
"database": "experimentation_demos",
"datasource": "mongodb",
"lookup_fields": [
"alpha",
"alpha_zero",
"beta",
"beta_zero",
"customer",
"epsilon_nominated",
"id",
"option",
"optionKey",
"propensity",
"uuid",
"weighting"
],
"lookup_defaults": "",
"virtual_variables": [],
"table_collection": "ab_testing_options",
"fields": "uuid,id,optionKey,option,alpha,beta,alpha_zero,beta_zero,weighting,epsilon_nominated,propensity,customer"
},
"updated_date": "2025-03-20T18:01:43.605Z",
"deployment_id": "ab_testing_demo"
}
],
"project_data": "ecosystem",
"created_by": "admin@ecosystem.ai",
"project_api_configs": [
{
"name": "AB Test",
"date": "2022-09-17"
}
],
"preview_detail": {
"summary": "Traditional AB test",
"image": "/assets/images/module_offerrecommender.001.png",
"active": true,
"detail": "Traditional AB test finding best of two options.",
"heading": "AB Testing"
},
"project_dynamic_interactions": [
{
"name": "AB Testing Demo",
"date": "2022-09-18"
}
],
"project_description": "Traditional AB test",
"updated_by": "admin@ecosystem.ai",
"_id": {
"date": "Thu Mar 20 18:01:44 UTC 2025",
"timestamp": 1742493704
},
"updated_date": "2025-03-20T18:01:44.000446Z",
"created_date": "2024-11-02T14:08:41.516Z",
"userid_login": "ecosystem"
}
Module Specific Configurations
The ecosystem platform has specific configurations for each module. These configurations are used to define the module specific configurations and are not always stored in the ecosystem_meta
database. Some of the module specific configurations include:
Offer Matrix - This format is used by recommender algorithms to define the offer matrix.
Data Formats
Note that key values are used by default functionality in various modules.
Offer Matrix
This format is used by a number of post scoring plugins that use recommenders. If these keys, cost, price, offer_id, offer_name, static_offers
are used in a product or offer catalog then all the default functionality in configuring a recommender will be available.
{
"cost": 96,
"price": 120,
"offer_id": "JFU82_DB200MB_P",
"offer_name": "200MB Data Option",
"static_offers": 1
}
All these values can be updated based on model results, business logic or data extraction in the plugin system.