In GX 1.x, create a Data Context with gx.get_context(); then define a Data Source, Data Asset, and Batch Definition using the fluent datasource API rather than the legacy datasource YAML format
Build an ExpectationSuite and add individual Expectations to it; create a ValidationDefinition that pairs the Batch Definition with the ExpectationSuite
Instantiate a Checkpoint with a list of ValidationDefinition objects, a list of actions, and a result_format (e.g., 'SUMMARY'); save it to the Data Context with context.checkpoints.add(checkpoint)
Add a SlackNotificationAction or MicrosoftTeamsNotificationAction to the actions list, providing the webhook URL via an environment variable reference rather than a hardcoded string
Run the checkpoint with checkpoint.run(); inspect the CheckpointResult object — it contains a dict of validation results keyed by ValidationDefinition name with pass/fail statistics and the list of failed Expectations
Known gotchas
GX 1.x replaced the YAML-based checkpoint configuration with a Python-first fluent API; legacy checkpoint YAML files from GX 0.15–0.18 are not directly portable and must be rewritten using the new ValidationDefinition and Checkpoint classes
The result_format parameter on Checkpoint.run() controls how much detail is returned; 'BOOLEAN_ONLY' is fastest but hides which specific values failed — use 'COMPLETE' for debugging but 'SUMMARY' for production to balance detail with performance
Actions execute after all validations complete regardless of pass/fail; if you want to halt a pipeline on failure, inspect CheckpointResult.success after checkpoint.run() and raise an exception explicitly rather than relying on an action to stop execution
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp