WorkflowService¶
Source definition: src/bitdrift/public/unary/workflows/v1/api.proto#L23-L63
Manages workflows and their lifecycle, including creation, deployment, and configuration.
Workflows are the core primitive within the bitdrift platform for specifying user journeys and collecting telemetry around them. A workflow is made up of a series of flows that describe the user journey and rules that specify when users transition between flows.
CreateWorkflow¶
Creates a new workflow.
| Request | Response |
|---|---|
Example Request
URL: https://api-public.bitdrift.io/bitdrift.public.unary.workflows.v1.WorkflowService/CreateWorkflow
See calling the API for authentication and request details.
{
"exploration_id": "abc-123-def",
"metadata": {
"deployment_expiration": {
"fixed_time": {
"time": "3600s"
}
},
"description": "Workflow description",
"per_rule_metadata": [
{
"rule_id": "_i1yUnHjKfmWpCaD5Tazo",
"title": "Rule title"
}
]
},
"per_rule_chart_metadata": [
{
"metadata": {
"metric_chart_metadata": {
"metadata": [
{
"connector_export_config": [
{
"cloudwatch_connector_export_config": {
"fixed_dimensions": {
"key": ""
},
"metric_name": "foreground_launches",
"namespace": "mobile_metrics"
},
"connector_name": "cloudwatch-primary"
}
],
"limit_strategy": {},
"sort_order": "DESC",
"title": "Time series title",
"top_k_algorithm": "MAX",
"y_axis": {
"description": "Count",
"unit": "COUNT"
}
}
],
"time_series_display_mode": {}
},
"no_data_message": "Example text",
"summary": {
"description": "Example text"
},
"title": "Chart title"
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"workflow": {
"actions": [
{
"metric_chart_rule": {
"time_series": [
{
"rate": {
"denominator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"group_by": {
"values": [
{
"log_body": false
}
]
},
"numerator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
}
},
"track_unique": {
"device_id": true
}
}
]
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"flows": [
{
"exclusive": {},
"steps": [
{
"exit_conditions": [
{
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
}
}
],
"loop_match_id": "_i1yUnHjKfmWpCaD5Tazo",
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
},
"save_fields": [
{
"field_name": "",
"id": "",
"regex_capture": ""
}
]
}
]
}
],
"group_by_fields": [
"field_name"
],
"name": "Workflow name",
"platform_targets": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
]
}
}
Example Response
{
"id": "abc-123-def"
}
DeleteWorkflow¶
Deletes a workflow permanently.
This removes the workflow and its configuration from the system. This operation is irreversible.
| Request | Response |
|---|---|
Example Request
URL: https://api-public.bitdrift.io/bitdrift.public.unary.workflows.v1.WorkflowService/DeleteWorkflow
See calling the API for authentication and request details.
{
"workflow_id": "DFg5"
}
Example Response
{
"violations": [
{
"message": "Example text"
}
]
}
DeployWorkflow¶
Deploys a workflow, making it active and able to receive traffic.
Deploying creates a new immutable version of the workflow configuration that is recorded in the deployment history.
| Request | Response |
|---|---|
Example Request
URL: https://api-public.bitdrift.io/bitdrift.public.unary.workflows.v1.WorkflowService/DeployWorkflow
See calling the API for authentication and request details.
{
"workflow_id": "DFg5"
}
Example Response
{
"metadata": {
"deployment_expiration": {
"fixed_time": {
"time": "3600s"
}
},
"description": "Workflow description",
"per_rule_metadata": [
{
"rule_id": "_i1yUnHjKfmWpCaD5Tazo",
"title": "Rule title"
}
]
},
"per_rule_chart_metadata": [
{
"metadata": {
"metric_chart_metadata": {
"metadata": [
{
"connector_export_config": [
{
"cloudwatch_connector_export_config": {
"fixed_dimensions": {
"key": ""
},
"metric_name": "foreground_launches",
"namespace": "mobile_metrics"
},
"connector_name": "cloudwatch-primary"
}
],
"limit_strategy": {},
"sort_order": "DESC",
"title": "Time series title",
"top_k_algorithm": "MAX",
"y_axis": {
"description": "Count",
"unit": "COUNT"
}
}
],
"time_series_display_mode": {}
},
"no_data_message": "Example text",
"summary": {
"description": "Example text"
},
"title": "Chart title"
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"violations": [
{
"match_or_rule_id": "_i1yUnHjKfmWpCaD5Tazo",
"message": "Example text"
}
],
"workflow": {
"actions": [
{
"metric_chart_rule": {
"time_series": [
{
"aggregated_id": "count/fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
"rate": {
"denominator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"denominator_id": "fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
"group_by": {
"values": [
{
"log_body": false
}
]
},
"numerator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"numerator_id": "fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc"
},
"track_unique": {
"device_id": true
}
}
]
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"created_at": "2024-01-15T09:30:00Z",
"deployed_at": "2024-01-15T09:30:00Z",
"deployment_expiration_time": "2024-01-15T09:30:00Z",
"flows": [
{
"exclusive": {},
"steps": [
{
"exit_conditions": [
{
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
}
}
],
"loop_match_id": "_i1yUnHjKfmWpCaD5Tazo",
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
},
"save_fields": [
{
"field_name": "",
"id": "",
"regex_capture": ""
}
]
}
]
}
],
"group_by_fields": [
"field_name"
],
"id": "DFg5",
"name": "Workflow name",
"owner": {
"email": "user@example.com",
"id": "usr_abc123",
"name": "Jane Doe"
},
"platform_targets": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
],
"state": "LIVE",
"updated_at": "2024-01-15T09:30:00Z"
}
}
GetWorkflow¶
Retrieves a workflow by ID.
Also updates the last viewed time of the workflow for the current user.
| Request | Response |
|---|---|
Example Request
URL: https://api-public.bitdrift.io/bitdrift.public.unary.workflows.v1.WorkflowService/GetWorkflow
See calling the API for authentication and request details.
{
"exploration_slug_or_id": "abc-123-def",
"workflow_slug_or_id": "abc-123-def"
}
Example Response
{
"metadata": {
"deployment_expiration": {
"fixed_time": {
"time": "3600s"
}
},
"description": "Workflow description",
"per_rule_metadata": [
{
"rule_id": "_i1yUnHjKfmWpCaD5Tazo",
"title": "Rule title"
}
]
},
"per_rule_chart_metadata": [
{
"metadata": {
"metric_chart_metadata": {
"metadata": [
{
"connector_export_config": [
{
"cloudwatch_connector_export_config": {
"fixed_dimensions": {
"key": ""
},
"metric_name": "foreground_launches",
"namespace": "mobile_metrics"
},
"connector_name": "cloudwatch-primary"
}
],
"limit_strategy": {},
"sort_order": "DESC",
"title": "Time series title",
"top_k_algorithm": "MAX",
"y_axis": {
"description": "Count",
"unit": "COUNT"
}
}
],
"time_series_display_mode": {}
},
"no_data_message": "Example text",
"summary": {
"description": "Example text"
},
"title": "Chart title"
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"workflow": {
"actions": [
{
"metric_chart_rule": {
"time_series": [
{
"aggregated_id": "count/fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
"rate": {
"denominator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"denominator_id": "fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
"group_by": {
"values": [
{
"log_body": false
}
]
},
"numerator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"numerator_id": "fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc"
},
"track_unique": {
"device_id": true
}
}
]
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"created_at": "2024-01-15T09:30:00Z",
"deployed_at": "2024-01-15T09:30:00Z",
"deployment_expiration_time": "2024-01-15T09:30:00Z",
"flows": [
{
"exclusive": {},
"steps": [
{
"exit_conditions": [
{
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
}
}
],
"loop_match_id": "_i1yUnHjKfmWpCaD5Tazo",
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
},
"save_fields": [
{
"field_name": "",
"id": "",
"regex_capture": ""
}
]
}
]
}
],
"group_by_fields": [
"field_name"
],
"id": "DFg5",
"name": "Workflow name",
"owner": {
"email": "user@example.com",
"id": "usr_abc123",
"name": "Jane Doe"
},
"platform_targets": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
],
"state": "LIVE",
"updated_at": "2024-01-15T09:30:00Z"
}
}
ListWorkflows¶
Lists all workflows available to the authenticated user.
| Request | Response |
|---|---|
Example Request
URL: https://api-public.bitdrift.io/bitdrift.public.unary.workflows.v1.WorkflowService/ListWorkflows
See calling the API for authentication and request details.
{
"filters": [
{
"owned": {}
}
],
"limit": 25,
"offset": 1,
"platform_targets": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
],
"sort": [
{
"direction": "DESCENDING",
"key": "CREATION_TIME"
}
]
}
Example Response
{
"items": [
{
"metadata": {
"deployment_expiration": {
"fixed_time": {
"time": "3600s"
}
},
"description": "Workflow description",
"per_rule_metadata": [
{
"rule_id": "_i1yUnHjKfmWpCaD5Tazo",
"title": "Rule title"
}
]
},
"workflow": {
"actions": [
{
"metric_chart_rule": {
"time_series": [
{
"aggregated_id": "count/fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
"rate": {
"denominator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"denominator_id": "fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
"group_by": {
"values": [
{
"log_body": false
}
]
},
"numerator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"numerator_id": "fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc"
},
"track_unique": {
"device_id": true
}
}
]
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"created_at": "2024-01-15T09:30:00Z",
"deployed_at": "2024-01-15T09:30:00Z",
"deployment_expiration_time": "2024-01-15T09:30:00Z",
"flows": [
{
"exclusive": {},
"steps": [
{
"exit_conditions": [
{
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
}
}
],
"loop_match_id": "_i1yUnHjKfmWpCaD5Tazo",
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
},
"save_fields": [
{
"field_name": "",
"id": "",
"regex_capture": ""
}
]
}
]
}
],
"group_by_fields": [
"field_name"
],
"id": "DFg5",
"name": "Workflow name",
"owner": {
"email": "user@example.com",
"id": "usr_abc123",
"name": "Jane Doe"
},
"platform_targets": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
],
"state": "LIVE",
"updated_at": "2024-01-15T09:30:00Z"
}
}
],
"total_active_workflows": 42,
"total_filtered_workflows": 42,
"total_workflows": 42
}
RenameWorkflow¶
Renames a workflow without modifying any other fields.
| Request | Response |
|---|---|
Example Request
URL: https://api-public.bitdrift.io/bitdrift.public.unary.workflows.v1.WorkflowService/RenameWorkflow
See calling the API for authentication and request details.
{
"name": "Workflow name",
"workflow_id": "DFg5"
}
Example Response
{
"metadata": {
"deployment_expiration": {
"fixed_time": {
"time": "3600s"
}
},
"description": "Workflow description",
"per_rule_metadata": [
{
"rule_id": "_i1yUnHjKfmWpCaD5Tazo",
"title": "Rule title"
}
]
},
"per_rule_chart_metadata": [
{
"metadata": {
"metric_chart_metadata": {
"metadata": [
{
"connector_export_config": [
{
"cloudwatch_connector_export_config": {
"fixed_dimensions": {
"key": ""
},
"metric_name": "foreground_launches",
"namespace": "mobile_metrics"
},
"connector_name": "cloudwatch-primary"
}
],
"limit_strategy": {},
"sort_order": "DESC",
"title": "Time series title",
"top_k_algorithm": "MAX",
"y_axis": {
"description": "Count",
"unit": "COUNT"
}
}
],
"time_series_display_mode": {}
},
"no_data_message": "Example text",
"summary": {
"description": "Example text"
},
"title": "Chart title"
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"workflow": {
"actions": [
{
"metric_chart_rule": {
"time_series": [
{
"aggregated_id": "count/fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
"rate": {
"denominator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"denominator_id": "fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
"group_by": {
"values": [
{
"log_body": false
}
]
},
"numerator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"numerator_id": "fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc"
},
"track_unique": {
"device_id": true
}
}
]
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"created_at": "2024-01-15T09:30:00Z",
"deployed_at": "2024-01-15T09:30:00Z",
"deployment_expiration_time": "2024-01-15T09:30:00Z",
"flows": [
{
"exclusive": {},
"steps": [
{
"exit_conditions": [
{
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
}
}
],
"loop_match_id": "_i1yUnHjKfmWpCaD5Tazo",
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
},
"save_fields": [
{
"field_name": "",
"id": "",
"regex_capture": ""
}
]
}
]
}
],
"group_by_fields": [
"field_name"
],
"id": "DFg5",
"name": "Workflow name",
"owner": {
"email": "user@example.com",
"id": "usr_abc123",
"name": "Jane Doe"
},
"platform_targets": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
],
"state": "LIVE",
"updated_at": "2024-01-15T09:30:00Z"
}
}
StopWorkflow¶
Stops a running workflow.
| Request | Response |
|---|---|
Example Request
URL: https://api-public.bitdrift.io/bitdrift.public.unary.workflows.v1.WorkflowService/StopWorkflow
See calling the API for authentication and request details.
{
"workflow_id": "DFg5"
}
Example Response
{
"metadata": {
"deployment_expiration": {
"fixed_time": {
"time": "3600s"
}
},
"description": "Workflow description",
"per_rule_metadata": [
{
"rule_id": "_i1yUnHjKfmWpCaD5Tazo",
"title": "Rule title"
}
]
},
"per_rule_chart_metadata": [
{
"metadata": {
"metric_chart_metadata": {
"metadata": [
{
"connector_export_config": [
{
"cloudwatch_connector_export_config": {
"fixed_dimensions": {
"key": ""
},
"metric_name": "foreground_launches",
"namespace": "mobile_metrics"
},
"connector_name": "cloudwatch-primary"
}
],
"limit_strategy": {},
"sort_order": "DESC",
"title": "Time series title",
"top_k_algorithm": "MAX",
"y_axis": {
"description": "Count",
"unit": "COUNT"
}
}
],
"time_series_display_mode": {}
},
"no_data_message": "Example text",
"summary": {
"description": "Example text"
},
"title": "Chart title"
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"workflow": {
"actions": [
{
"metric_chart_rule": {
"time_series": [
{
"aggregated_id": "count/fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
"rate": {
"denominator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"denominator_id": "fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
"group_by": {
"values": [
{
"log_body": false
}
]
},
"numerator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"numerator_id": "fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc"
},
"track_unique": {
"device_id": true
}
}
]
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"created_at": "2024-01-15T09:30:00Z",
"deployed_at": "2024-01-15T09:30:00Z",
"deployment_expiration_time": "2024-01-15T09:30:00Z",
"flows": [
{
"exclusive": {},
"steps": [
{
"exit_conditions": [
{
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
}
}
],
"loop_match_id": "_i1yUnHjKfmWpCaD5Tazo",
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
},
"save_fields": [
{
"field_name": "",
"id": "",
"regex_capture": ""
}
]
}
]
}
],
"group_by_fields": [
"field_name"
],
"id": "DFg5",
"name": "Workflow name",
"owner": {
"email": "user@example.com",
"id": "usr_abc123",
"name": "Jane Doe"
},
"platform_targets": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
],
"state": "LIVE",
"updated_at": "2024-01-15T09:30:00Z"
}
}
UpdateWorkflow¶
Updates a workflow, replacing the existing configuration with the provided definition.
| Request | Response |
|---|---|
Example Request
URL: https://api-public.bitdrift.io/bitdrift.public.unary.workflows.v1.WorkflowService/UpdateWorkflow
See calling the API for authentication and request details.
{
"metadata": {
"deployment_expiration": {
"fixed_time": {
"time": "3600s"
}
},
"description": "Workflow description",
"per_rule_metadata": [
{
"rule_id": "_i1yUnHjKfmWpCaD5Tazo",
"title": "Rule title"
}
]
},
"per_rule_chart_metadata": [
{
"metadata": {
"metric_chart_metadata": {
"metadata": [
{
"connector_export_config": [
{
"cloudwatch_connector_export_config": {
"fixed_dimensions": {
"key": ""
},
"metric_name": "foreground_launches",
"namespace": "mobile_metrics"
},
"connector_name": "cloudwatch-primary"
}
],
"limit_strategy": {},
"sort_order": "DESC",
"title": "Time series title",
"top_k_algorithm": "MAX",
"y_axis": {
"description": "Count",
"unit": "COUNT"
}
}
],
"time_series_display_mode": {}
},
"no_data_message": "Example text",
"summary": {
"description": "Example text"
},
"title": "Chart title"
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"workflow": {
"actions": [
{
"metric_chart_rule": {
"time_series": [
{
"rate": {
"denominator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"group_by": {
"values": [
{
"log_body": false
}
]
},
"numerator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
}
},
"track_unique": {
"device_id": true
}
}
]
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"flows": [
{
"exclusive": {},
"steps": [
{
"exit_conditions": [
{
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
}
}
],
"loop_match_id": "_i1yUnHjKfmWpCaD5Tazo",
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
},
"save_fields": [
{
"field_name": "",
"id": "",
"regex_capture": ""
}
]
}
]
}
],
"group_by_fields": [
"field_name"
],
"name": "Workflow name",
"platform_targets": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
]
},
"workflow_id": "DFg5"
}
Example Response
{
"metadata": {
"deployment_expiration": {
"fixed_time": {
"time": "3600s"
}
},
"description": "Workflow description",
"per_rule_metadata": [
{
"rule_id": "_i1yUnHjKfmWpCaD5Tazo",
"title": "Rule title"
}
]
},
"per_rule_chart_metadata": [
{
"metadata": {
"metric_chart_metadata": {
"metadata": [
{
"connector_export_config": [
{
"cloudwatch_connector_export_config": {
"fixed_dimensions": {
"key": ""
},
"metric_name": "foreground_launches",
"namespace": "mobile_metrics"
},
"connector_name": "cloudwatch-primary"
}
],
"limit_strategy": {},
"sort_order": "DESC",
"title": "Time series title",
"top_k_algorithm": "MAX",
"y_axis": {
"description": "Count",
"unit": "COUNT"
}
}
],
"time_series_display_mode": {}
},
"no_data_message": "Example text",
"summary": {
"description": "Example text"
},
"title": "Chart title"
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"violations": [
{
"modified_chart_has_alert": {
"aggregated_id": "count/fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
}
],
"workflow": {
"actions": [
{
"metric_chart_rule": {
"time_series": [
{
"aggregated_id": "count/fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
"rate": {
"denominator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"denominator_id": "fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc",
"group_by": {
"values": [
{
"log_body": false
}
]
},
"numerator": {
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"name": "field_name"
},
"numerator_id": "fkQ1PfAZhdYvJexzY6DYuoYCZTEaWO0Y7spxwjr7akc"
},
"track_unique": {
"device_id": true
}
}
]
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo"
}
],
"created_at": "2024-01-15T09:30:00Z",
"deployed_at": "2024-01-15T09:30:00Z",
"deployment_expiration_time": "2024-01-15T09:30:00Z",
"flows": [
{
"exclusive": {},
"steps": [
{
"exit_conditions": [
{
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
}
}
],
"loop_match_id": "_i1yUnHjKfmWpCaD5Tazo",
"match_rule": {
"generic_match": {
"base_matcher": {
"log_field": "field_name",
"operator": "EQUAL",
"string_value": "example"
}
},
"match_id": "_i1yUnHjKfmWpCaD5Tazo",
"sample_rate": 100
},
"save_fields": [
{
"field_name": "",
"id": "",
"regex_capture": ""
}
]
}
]
}
],
"group_by_fields": [
"field_name"
],
"id": "DFg5",
"name": "Workflow name",
"owner": {
"email": "user@example.com",
"id": "usr_abc123",
"name": "Jane Doe"
},
"platform_targets": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
],
"state": "LIVE",
"updated_at": "2024-01-15T09:30:00Z"
}
}
UpsertWorkflowChartMetadata¶
Creates or updates chart metadata for a workflow.
Chart metadata includes information such as the chart title, description, and the metric query that the chart is based on. This determines how workflow output data is rendered in the UI.
| Request | Response |
|---|---|
Example Request
URL: https://api-public.bitdrift.io/bitdrift.public.unary.workflows.v1.WorkflowService/UpsertWorkflowChartMetadata
See calling the API for authentication and request details.
{
"metadata": {
"metric_chart_metadata": {
"metadata": [
{
"connector_export_config": [
{
"cloudwatch_connector_export_config": {
"fixed_dimensions": {
"key": ""
},
"metric_name": "foreground_launches",
"namespace": "mobile_metrics"
},
"connector_name": "cloudwatch-primary"
}
],
"limit_strategy": {},
"sort_order": "DESC",
"title": "Time series title",
"top_k_algorithm": "MAX",
"y_axis": {
"description": "Count",
"unit": "COUNT"
}
}
],
"time_series_display_mode": {}
},
"no_data_message": "Example text",
"summary": {
"description": "Example text"
},
"title": "Chart title"
},
"rule_id": "_i1yUnHjKfmWpCaD5Tazo",
"workflow_id": "DFg5"
}
Example Response
{}