Chapter 16: Advanced Policy Patterns
Exploring advanced Guardian policy features for production methodologies including external data integration, document validation, API transformation, and policy testing
Building on VM0033's implementation patterns from Chapter 15, Chapter 16 explores advanced features that enable production-scale policy deployment. These patterns handle external data integration, document validation, API transformations, and testing workflows essential for real-world carbon credit programs.
1. Data Transformation Blocks for API Integration
Verra Project Hub API Integration
VM0033 implements a dataTransformationAddon that converts Guardian project submissions into Verra's Project Hub compatible API payloads, enabling automatic project registration with external registries.
VM0033 Project Description Transformation Block
The transformation block in VM0033 (tag: project-description) demonstrates how Guardian can transform internal project data into external API formats:
{
"id": "819d94e8-7d1d-43c1-a228-9b6fa1982e3f",
"blockType": "dataTransformationAddon",
"defaultActive": false,
"permissions": ["Project_Proponent"],
"onErrorAction": "no-action",
"tag": "project-description",
"expression": "(function calc() {\n const jsons = [];\n if (documents && documents.length > 0) {\n documents.forEach((doc) => {\n const document = doc.document;\n\n const json = {\n id: '',\n projectNumber: null,\n accountId: '',\n standardTemplate: '',\n standardTemplateName: '',\n methodologyTemplateTitle: '',\n methodologyTemplate: '',\n projectName: '',\n projectDescription: '',\n website: null,\n projectSubmissionStatus: 'Draft',\n fetchProjectBoundaryFromCalculationInput: false,\n estimatedProjectStartDate: '',\n creditPeriod: {\n startDate: '',\n endDate: ''\n },\n projectSize: null,\n averageAnnualVolume: null,\n integratedModules: null,\n integratedTools: null,\n integratedMethodologies: null,\n projectType: '14',\n useManualCalculation: null,\n locations: [],\n projectProponents: [''],\n projectProponentsWithDetails: null,\n vcs: {\n afoluActivities: [],\n projectValidatorId: null,\n additionalProjectTypes: [],\n earlyAction: null\n },\n ccb: {\n ccbStandard: null,\n ccbStandardName: null,\n projectTypeId: null,\n distinctions: [],\n auditorSiteVisitStartDate: null,\n auditorSiteVisitEndDate: null,\n ccbVerifierList: [],\n projectValidatorId: null\n },\n sdVista: null,\n plasticWRP: null,\n registryDocumentUploadData: null,\n calculationInputs: {\n projectBoundaryProject: ['', '', '', '', '', '', '', '', '', ''],\n projectBoundaryBaseline: ['', '', '', '', '', '', '', '', '', '']\n },\n otherJsonContents: {\n cover: {\n version: '',\n projectId: '',\n dateOfIssue: '',\n projectTitle: '',\n projectWebsite: '',\n projectLifeTime: {\n endDate: null,\n startDate: null\n },\n standardVersion: '',\n accountingPeriod: {\n endDate: null,\n startDate: null\n },\n expectedSchedule: '',\n projectProponent: '',\n verificationBody: '',\n goldLevelCriteria: '',\n recentDateOfIssue: '',\n ccbStandardVersion: '',\n documentPreparedBy: '',\n historyOfCcbStatus: '',\n multipleProjectLocation: null\n }\n }\n };\n\n jsons.push(json);\n });\n }\n return jsons;\n})"
}Key Transformation Features:
API Compatibility: Creates Verra Project Hub API-compatible JSON structure
Data Mapping: Maps Guardian schema fields to external registry requirements
Standard Integration: Handles VCS and CCB standard-specific fields
Default Values: Sets appropriate defaults for registry submission status
Bulk Processing: Processes multiple documents in single transformation
Implementation Pattern:

Implementation Use Cases
Carbon Registry Integration:
Automatic project listing with Verra, Gold Standard, or other registries
Real-time status synchronization between Guardian and external systems
Standardized data exchange for multi-registry projects
Corporate Reporting:
Transform carbon project data for corporate sustainability reporting
Generate API payloads for ESG reporting platforms
Create standardized data formats for carbon accounting systems
2. Document Validation Blocks
Guardian's documentValidatorBlock ensures document integrity and compliance throughout policy workflows. This block validates document structure, content, and relationships before processing continues.
Document Validation Architecture
Validation Types:
Schema Validation: Ensures documents conform to defined JSON schemas
Ownership Validation: Verifies document ownership and assignment rules
Content Validation: Checks specific field values and business logic
Relationship Validation: Validates links between related documents
Condition Types:
Equal
Field equals specific value
document.type = "project"
Not Equal
Field does not equal value
status β "Rejected"
In
Field value in array
methodology β [VM0033, VM0007]
Not In
Field value not in array
country β [sanctioned_countries]
Practical Validation Examples
Project Eligibility Validation:
VVB Assignment Validation:
3. External Data Integration
Guardian's externalDataBlock enables policies to integrate with external APIs and data providers for real-time environmental monitoring and verification.
External Data Block Architecture
Example 1: Kanop Environmental Data Integration
Kanop provides satellite-based MRV technology for nature-based carbon projects. Integration enables automatic data retrieval for biomass monitoring, forest cover analysis, and carbon stock assessments. External data block can be used to integrate and get data from Kanop.
Example 2: IoT Device Integration for Cookstove Projects
For metered cookstove projects, external data blocks can integrate with IoT devices to collect real-time usage data:
IoT Data Processing:
Real-Time Data Validation
External data integration includes validation mechanisms to ensure data quality:

4. Policy Testing Framework
Guardian provides robust testing capabilities for policy validation before production deployment, including manual dry-run testing and programmatic test automation.
Dry-Run Mode Testing
Dry-run mode enables complete policy testing as the name suggests. Policy developer can take up different roles and simulate the entire process end to end to verify everything works.
Starting Dry-Run Mode:
You can trigger dry run either via policy editor UI or API

Dry-Run Features:
Virtual Users: Create test users without real Hedera accounts
Mock Transactions: Simulate blockchain transactions locally
Local Storage: Store all documents and artifacts in database
Full Workflow: Test complete certification workflows
State Management: Save and restore workflow states with savepoints
Dry-Run Workflow Operations
Key Operations Available in Dry-Run Mode:
Restart: Reset policy state and remove all previous dry-run records
View Transactions: Examine mock blockchain transactions
View Artifacts: Review all generated documents
View IPFS Files: Check files that would be stored in IPFS
Savepoints: Create and restore workflow checkpoints for testing different scenarios
Programmatic Policy Testing
Guardian supports automated policy testing with predefined test scenarios and expected outcomes.
Adding Test Cases:
Tests are embedded in policy files and executed programmatically:
Running Automated Tests:
Test Result Analysis
Test Failure Analysis
When tests fail, Guardian provides detailed comparison and debugging information:
Testing Best Practices:
Test Coverage Strategy: Test each stakeholder workflow independently, validate all document state transitions, test error handling and edge cases
Test Data Management: Create realistic test datasets matching production scenarios, use boundary value testing for numerical inputs
Continuous Testing: Run tests after each policy modification, automate testing in CI/CD pipelines
5. Demo Mode for Simplified Testing
Guardian provides Demo Mode as a simplified approach to policy testing, particularly useful for novice users and quick policy validation. Demo mode is selected during policy import.
Demo Mode Features
Demo Mode operates similarly to dry-run but with enhanced user interface simplification:
Read-Only Policy Processing: All policy processing is read-only, policy editing is not possible
No External Communication: No communication with external systems such as Hedera network or IPFS
Simplified UI: Streamlined interface designed for ease of use
Local Storage: All artifacts stored locally similar to dry-run mode
Summary
Chapter 16 demonstrated Guardian's advanced policy patterns essential for production deployment:
Data Transformation: VM0033's
project-descriptiontransformation block converts Guardian project data to Verra API-compatible formats for automatic registry integrationDocument Validation:
documentValidatorBlockprovides robust validation with condition-based rules for ensuring document integrity and business logic complianceExternal Data Integration:
externalDataBlockenables integration with providers like Kanop for satellite monitoring and IoT devices for real-time environmental dataPolicy Testing: Dry-run mode and automated testing frameworks validate complete workflows before production deployment
Demo Mode: Simplified testing environment for quick policy validation and novice user training
These patterns enable Guardian policies to integrate with real-world carbon markets, environmental monitoring systems, and corporate reporting platforms while maintaining data integrity and audit trails.
Next Steps: Part V covers the calculation logic implementation, diving deep into methodology-specific emission reduction calculations and the JavaScript calculation engine that powers Guardian's environmental accounting.
Prerequisites Check: Ensure you have:
Time Investment: ~25 minutes reading + ~90 minutes hands-on testing with dry-run mode
Practical Exercises:
Dry-Run Testing: Import and set up VM0033 in dry-run mode and test complete project lifecycle
External Data Integration: Configure external data block for your methodology's monitoring requirements
Document Validation: Implement validation rules for your specific business logic
API Transformation: Create transformation block for your target registry's API format
Last updated