🌴
Guardian-dev
  • Guardian
    • 🌏Getting Started
      • 🏜️Discovering Environmental assets on Hedera
      • πŸŽ“Guardian Glossary
      • πŸ“–Installation Guide
        • πŸ—’οΈPrerequisites
        • πŸ› οΈInstallation
          • πŸ”¨Building from source and run using Docker
            • Deploying Guardian using default Environment
            • Deploying Guardian using a specific Environment ( DEVELOP )
            • Deploying Guardian using a specific Environment (QA)
          • πŸ”¨Building from Pre-build containers
          • πŸ”¨Build executables and run manually
          • ☁️Cloud Deployment
          • ⬆️Upgrading
          • πŸ”™Backup tools
          • 🏑Setting up environment parameters
          • πŸ“Summary of URLs and Ports
          • πŸ’»Launching Guardian
          • πŸ§ͺHow to perform Unit Tests?
        • πŸ”¨How to Configure Hedera Local Node
        • πŸ”¨How to Configure HashiCorp Vault
        • πŸ”¨How to create Operator ID and Operator Key
        • πŸ”¨How to generate Web3.Storage API values
        • πŸ”¨How to Change Explorer URL
        • πŸ”¨How to Restore Account from Database/Hashicorp Vault during Setup
      • πŸ™Contributing
        • πŸš‡Contribute a New Policy
      • πŸ“–Frameworks/Libraries
        • πŸ’»Guardian CLI
      • βš™οΈAPI Guideline
      • πŸ”Guardian Vault
      • 🌎Environments
        • 🌎Multi session consistency according to Environment
        • πŸ”‘Dynamic Vault/KMS path configuration according to the environment
        • 🏑Ecosystem Environments
      • πŸ“ƒChange Log
      • πŸ›£οΈRoadmap
      • 🚨License
      • πŸ“žContact
      • πŸ”Security
      • πŸ”‘Meeco authentication
        • πŸ”‘How it works
    • πŸ‘·Architecture
      • ⬇️Deep Dive Architecture
      • πŸ”ΊHigh Level Architecture
      • πŸ‘Policies,Projects and Topics Mapping Architecture
      • βž—MRV Splitting Logic
      • πŸ”‘Internal (with Vault)Signing Sequence Diagram
      • πŸ”₯FireBlocks Signing Sequence Diagram
    • πŸ“‡Global Indexer
      • πŸ’»Indexer User Guide
      • βš™οΈIndexer APIs
        • Full Text Indexer Search
        • Returns Standard Registries
        • Returns Registry as per MessageID
        • Returns Registry Users
        • Returns Registry User as per MessageID
        • Returns Policies
        • Returns policy as per MessageID
        • Returns Tools
        • Returns Tool as per MessageID
        • Returns Modules
        • Returns Module as per MessageID
        • Returns Schemas
        • Returns Schema as per MessageID
        • Returns Schema Tree
        • Returns Tokens
        • Returns Token as per TokenID
        • Returns Roles
        • Returns Role as per MessageID
        • Returns DIDs
        • Returns DID as per MessageID
        • Returns DID Relationships
        • Returns VP Documents
        • Returns VP Document as per MessageID
        • Returns VP Relationships
        • Returns VC Documents
        • Returns VC Document as per MessageID
        • Returns VC Relationships
        • Returns NFTs
        • Returns NFT as per Serial No.
        • Returns Topics
        • Returns Topic as per TopicID
        • Returns Contracts
        • Returns Contract as per MessageID
        • Returns Landing Page Analytics
        • Returns Project Coordinates
        • Returns Search Policy Results
        • Attempts to refresh linked files for the selected documents
        • Returns Hedera Network
        • Returns Hedera Network Explorer Settings
        • Returns Data Loading Progress Result
        • Returns Registry Relationships
        • Returns Policy Relationships
        • Retrieve the list of formulas
        • Retrieve the formula by message ID
        • Retrieve linked documents which are related to formula
        • Returning Topic Data Priority Loading Progress
        • Adding Topic Data Priority Loading
        • Adding Policy Data for Priority Loading
        • Adding Token Data for Priority Loading
        • Adding Document to Data Priority Loading
    • πŸ—ΊοΈMap Related APIs
      • Returning map API Key
      • Returning Sentinel API Key
    • πŸ—„οΈStandard Registry
      • πŸ› οΈSchemas
        • πŸ“‚Available Schema Types
        • πŸ“‚Property Glossary
        • ℹ️Types of Schemas
        • ℹ️Schema Versioning & Deprecation Policy
        • πŸ“ΉHow to design a Schema of a Methodology
        • πŸ’»Creating Schema using UI
        • βš™οΈSchema APIs
          • Listing of Schema
          • Publishing Schema based on Schema ID
          • Updating Schema
          • Deleting a Schema
          • Schema Preview from IPFS
          • Schema Preview from Zip
          • Export message IDs of Schema
          • Export Files from Schema
          • Creation of Schema related to the topic
          • Returns all Schemas related to the topic
          • Importing Zip file containing Schema
          • Importing Schema from IPFS
          • Returning Schema by SchemaID
        • βš™οΈSystem Schema APIs
          • Returns Schema by Type
          • Creates New System Schema
          • Returns Schema by Username
          • Updates the Schema
          • Delete System Schema
          • Publishes the Schema
          • Schema Type
          • Returns Map API Key
        • βš™οΈSchema APIs for Asynchronous Execution
          • Creation of Schema
          • Publishing Schema
          • Previews the Schema from IPFS
          • Importing Schema from IPFS
          • Importing Schema from .zip
        • πŸ“Schema Differentiation
          • πŸ’»Schema Differentiation using UI
          • βš™οΈSchema Differentiation APIs
            • Compare Schemas
            • Exports Schema Differentiation Results
        • πŸ“Example Data
          • πŸ’»Adding Example data using UI
        • πŸ“‚Schema Tree
          • πŸ’»Schema Tree UI
          • βš™οΈAPI for Returning Schema Tree
        • πŸ“Tag Schema
          • πŸ’»Creating Tag Schemas using UI
          • βš™οΈSchema Tags APIs
            • Returning all Schema Tags
            • Creating new Schema Tag
            • Deleting Schema Tag
            • Updating Schema Tag
            • Publishing Schema
            • Returning list of published schemas
        • Schema Predefined Values using UI
        • Schema Rules
          • Defining Schema Rules using UI
          • APIs related to Schema Rules
            • Creation of the new schema rule
            • Retrieve the schema rules
            • Retrieve the configuration of the rule by its ID
            • Update the configuration of the rule with the corresponding ID
            • Delete the rule by its ID
            • Activate the rule with the specified ID
            • Deactivate the rule with the specified ID
            • List all the schemas and policy relevant to the rule with the specified ID
            • Retrieve all the data needed for evaluating the rules
            • Create a new rule from the file
            • Load the file and return its preview
            • Export the selected rule (by ID) into the file
      • πŸ› οΈPolicies
        • πŸŽ“Policy Glossary
        • πŸ“Versioning and Deprecation Policy
          • ℹ️Policy Versioning & Deprecation Policy
          • ℹ️API Versioning & Deprecation Policy
          • ℹ️Internal APIs Versioning & Deprecation Policy
        • πŸ”©Policy Creation
          • πŸ”„Available Policy Workflow Blocks
            • InterfaceContainerBlock
            • PolicyRolesBlock
            • InterfaceStepBlock
            • requestVCDocumentBlock
            • sendToGuardianBlock
            • reassigningBlock
            • InformationBlock
            • InterfaceDocumentsSourceBlock
            • paginationAddon
            • DocumentsSourceAddOn
            • filtersAddOnBlock
            • InterfaceActionBlock
            • externalDataBlock
            • retirementDocumentBlock
            • calculateContainerBlock & calculateMathAddOnBlock
            • reportBlock & reportItemBlock
            • switchBlock
            • aggregateDocumentBlock
            • TimerBlock
            • revokeBlock
            • setRelationshipsBlock
            • buttonBlock
            • documentValidatorBlock
            • tokenActionBlock
            • tokenConfirmationBlock
            • mintDocumentBlock
            • Events
            • groupManagerBlock
            • multiSignBlock
            • customLogicBlock
            • splitBlock
            • wipeDocumentBlock
            • Create Token Block
            • impactAddon
            • Http Request Block
            • historyAddon
            • selectiveAttributes Block
            • tagsManagerBlock
            • extractDataBlock
            • externalTopicBlock
            • messagesReportBlock
            • notificationBlock
            • Button Block Addon (buttonBlockAddon)
            • Dropdown Block Addon (dropdownBlockAddon)
            • Request Vc Document Block Addon (requestVcDocumentBlockAddon)
            • Data Transformation Addon
          • πŸ’»Creating Policy using UI
          • πŸ’»Creating a Policy through Policy Configurator
            • Getting Started with the Policy Workflows
            • Policy Workflow Step 1
            • Policy Workflow Step 2
            • Policy Workflow Step 3
            • Policy Workflow Step 4
            • Policy Workflow Step 5
            • Policy Workflow Step 6
            • Policy Workflow Step 7
            • Policy Workflow Step 8
            • Policy Workflow Step 9
            • Policy Workflow Step 10
            • Policy Workflow Step 11
            • Policy Workflow Step 12
            • Policy Workflow Step 13
            • Policy Workflow Step 14
            • Policy Workflow Step 15
            • Policy Workflow Step 16
            • Policy Workflow Step 17
            • Policy Workflow Step 18
            • Policy Workflow Step 19
            • Policy Workflow Step 20
            • Policy Workflow Step 21
            • Policy Workflow Step 22
            • Policy Workflow Step 23
            • Policy Workflow Step 24
            • Policy Workflow Step 25
            • Policy Workflow Wrap Up
          • βš™οΈCreating a Policy using APIs
            • Prerequesite Steps
            • Creation of a Policy
            • Policy Listing
            • Import a Policy from IPFS
            • Policy Preview from IPFS
            • Retrieves Policy Configuration
            • Updates Policy Configuration
            • Publish a Policy
            • Policy Validation
            • Retrieval of Data for Root Policy Block
            • Request Block Data
            • Sends Data to Specified Block
            • Returns Block ID by tag
            • Exporting Message ID
            • Export to zip file
            • Import from zip file
            • Retrieves Block Data by Tag
            • Sends Data to specified Block by Tag
            • Returns list of Groups of a particular user
            • Make the selected Group active
            • Creating link between policies
            • Requesting Multi Policy Config
            • Importing Policy from a Zip file with Metadata
          • βš™οΈAPIs for Asynchronous Execution
            • Creates new Policy
            • Publishing a Policy
            • Importing a Policy from IPFS
            • Importing a Policy from file
            • Policy Review
            • Importing Policy from a Zip file with Metadata
        • πŸ“Dry Run
          • πŸ’»Dry Run Mode using UI
          • βš™οΈDry Run Mode using APIs
            • Running Policy without making any changes
            • Returning all Virtual Users
            • Creating Virtual Account
            • Logging Virtual User
            • Restarting the execution of Policy
            • Returns List of Transactions
            • Returns List of Artifacts
            • Returns List of IPFS Files
            • Returning Policy to Editing
            • Create Savepoint
            • Returns Savepoint State
            • Restoring SavePoint
            • Deletes SavePoint
        • πŸ§‘β€πŸ€β€πŸ§‘Roles and Groups
          • πŸ’»Creating Roles and Groups using Policy Configurator UI
        • πŸ“Record/Replay
          • πŸ’»Policy execution record and replay using UI
          • βš™οΈRecord/Replay APIs
            • Get Recording
            • Start Recording
            • Stop Recording
            • Get Recorded Actions
            • Run record from zip file
            • Stop Running
            • Get Running Results
            • Get Running Details
            • Fast Forward
            • Retry Step
            • Skip Step
        • πŸ“Global Policy Search & Compare
          • πŸ’»Global search and comparison UI
          • πŸ’»Policy Differentiation using UI
          • βš™οΈPolicy Compare and Search APIs
            • Comparing Policies
            • Searching Policies
            • Exports Comparison results
        • πŸ”Block/Policy Discoverability
          • πŸ’»Search Policy using UI
          • βš™οΈSearch Policy APIs
            • Search Policy
          • πŸ’»Search Block using UI
          • βš™οΈSearch Block APIs
            • Searching Same Blocks
        • πŸ“‚Document Comparison
          • πŸ’»Document Comparison using UI
          • βš™οΈDocument Comparison APIs
            • Compare Documents
            • Export Comparison Results
        • πŸ“‚Tools
          • πŸ’»Tools using UI
          • βš™οΈTools APIs
            • Creating new Tool
            • Returns list of tools
            • Creating new tool asynchronously
            • Deletes the Tool
            • Retrieves Tool Configuration
            • Updates Tool Configuration
            • Publishes Tool onto IPFS
            • Publishes Tool into IPFS asynchronously
            • Validates Selected Tool
            • Returns Tools and its artifacts in zip format
            • Retrieves Hedera Message ID
            • Previews Imported Tool from IPFS
            • Imported Tool from IPFS
            • Previews Imported Tool from Zip
            • Importing Tool from Zip
            • Imports new tool from Zip Asynchronously
            • Imports new tool from IPFS Asynchronously
            • Returns List of Tools
            • Importing Tool from a Zip file
            • Importing Tool from a Zip file asynchronously
        • πŸ“Modules
          • πŸ’»Modules using UI
          • βš™οΈModules APIs
            • Returns all Modules
            • Creating new Module
            • Returns Module Menu
            • Retrieves Module Configuration
            • Updates Module Configuration
            • Delete the Module
            • Publishing Module onto IPFS
            • Returns Hedera ID for specific Module
            • Exporting Module in zip format
            • Import Module from IPFS
            • Import module from zip file
            • Preview Module from IPFS
            • Preview Module from zip file
            • Validates Module
          • πŸ“Modules Differentiation
            • πŸ’»Module Differentiation using UI
            • βš™οΈModule Differentiation APIs
              • Returns result of Module Comparison
              • Exports Comparison Result
        • πŸ“Tagging
          • πŸ’»Tagging using UI
          • βš™οΈTagging APIs
            • Creating Tag
            • Searching Tag
            • Deleting Tag
            • Synchronization of tags
        • πŸ“Themes
          • πŸ’»Themes using UI
          • βš™οΈThemes APIs
            • Returning all themes
            • Creating theme
            • Updating theme Configuration
            • Deleting theme
            • Returning zip file containing themes
            • Importing theme
        • πŸ“Policy Wizard
          • πŸ’»Demo on Policy Wizard using UI
          • βš™οΈPolicy Wizard APIs
            • Creating new Policy
            • Getting Policy Configuration
        • πŸ“‚Auto Suggestion
          • πŸ’»Demo using UI
          • βš™οΈAuto Suggestion APIs
            • Get next and nested suggested block types
            • Get suggestions configuration
            • Set suggestions configuration
        • πŸ“Auto Testing of the Policies
          • πŸ’»Auto Testing using UI
          • βš™οΈAuto Testing Policies APIs
            • Adding new Test to the policy
            • Returning Policy Test by ID
            • Running the Policy Test
            • Stopping the Specified Test
            • Deleting the Specified Test
            • Returning details of the most recent test run
        • πŸ“”Library of Policy Examples
          • πŸ’»Creating and using Roles
          • πŸ”’Data input via Forms, using Roles to partition user activities.
          • πŸͺ™Token Operations
          • πŸ”ŽMRV Document Operations
          • ⛓️TrustChain reports
          • βž—MRV aggregation and splitting for minting tokens
        • πŸ’»Demo on Integrating external policies using UI
        • Policy Labels
          • Policy Labels UI
          • βš™οΈAPIs related to Policy Labels
            • Creating new Label definition
            • Retrieve the list of Label definitions
            • Retrieve a label definition configuration by ID
            • Update Label configuration by ID
            • Delete Label definition by ID
            • Publish Label definition by ID
            • Publish Label definition by ID asynchronously
            • Retrieve the list of components for Label configuration (schemas, policies, etc)
            • Import Label configuration from a file
            • Export Label configuration to a file
            • Preview of the imported file
            • Search for Labels and Statistics for importing into Label configuration
            • Retrieve the list of created tokens (VPs) for which a Label document can be created
            • Retrieve token (VP) and all its dependencies by document ID
            • Create a new Label document for token (VP)
            • Retrieve a list of created Label documents
            • Retrieve Label document by ID
            • Retrieve linked Label documents by ID
        • Formula Linked Definitions
          • Formula Linked Definitions using UI
          • βš™οΈAPIs related to Formula Linked
            • Creating a new formula
            • Returns a list of formulas
            • Returns a formula by its ID
            • Update the formula by its ID
            • Delete the formula by its ID
            • Retrieve the list of all schemas and policies linked to a Formula
            • Create a new formula (import) from a file
            • Export selected formulas into a file
            • Loads (import) a file and return its preview
            • Publish a formula
            • Retrieve all data from documents that needed for displaying the formula
      • πŸ”‘Bring your own DIDs
        • πŸ’»Bring your own (BYO) DIDs UI
        • βš™οΈAPIs
          • Validate DID Format
          • Validate DID Keys
      • πŸ“Import/Export in Excel
        • πŸ’»Import and Export Excel file User Guide
        • βš™οΈImport/Export Schemas/Policies APIs
          • Import Schemas in Excel file format into a policy
          • Asynchronously Imports Schemas in Excel file format into a policy
          • Previews Schema from Excel file
          • Returns Schema in Excel file format
          • Returns list of Schemas
          • Exporting Policy to Excel
          • Import Schemas in Excel file format into a Policy
          • Asynchronously Imports Schemas in Excel file format into a policy
          • Policy Preview from Excel file
      • πŸ“Project Comparison
        • πŸ’»Project Comparison using UI
        • βš™οΈProject Comparison APIs
          • Comparing Project Data Documents
          • Comparing VP Documents - V1
          • Retrieves all Properties
          • Search Projects by filters
      • πŸ”‘Selective Disclosure
        • πŸ“”User Guide
        • πŸ”Selective Disclosure Demo
      • πŸ“ˆUsage Statistics
        • πŸ’»Statistics
        • βš™οΈAPIs related to Statistics
          • Returns the status of the current report
          • Update current report
          • Returns all reports
          • Returns report data by report uuid
          • Export report data in a csv file format
          • Export report data in a xlsx file format
          • Returns all dashboards
          • Returns dashboard by uuid
          • Returns Metrics
      • πŸ“’Artifacts
        • πŸ’»Importing/Deleting Artifacts using UI
        • βš™οΈArtifacts APIs
          • Returns all Artifacts
          • (deprecated) Returns all Artifacts
          • Upload Artifacts
          • (deprecated) Upload Artifacts
          • Delete Artifact
          • (deprecated) Delete Artifact
      • πŸ’»Asynchronous Tasks Status
      • Show list of Hedera Transactions
        • Showing List of Hedera Transactions using
        • APIs
          • Returning all transactions for Policy
          • Returning all transactions for Schema
          • Returning all transactions for Token
          • Returning all transactions for Contract
      • πŸ””Notifications
        • πŸ’»User Guide
        • βš™οΈAPIs related to Notification
          • Get All Notifications
          • Get new Notifications
          • Get Progresses
          • Read All Notifications
          • Delete Notifications
      • πŸ“Discontinuing Policy Workflow
        • πŸ’»User Guide
        • βš™οΈAPIs related to Discontinuing Policy workflow
          • Discontinue Policy
          • MigratePolicy Data
          • Migrate Policy Data Asynchronous
          • Get Policy Documents
      • πŸ“Live Project Data Migration
        • ↔️Live Project Data Migration UI
        • βš™οΈAPIs related to Live Project Data Migration
          • Getting Policy Data
          • Uploading Policy Data
          • Getting Policy Tag Block Map
          • Getting Policy Virtual Keys
          • Uploading Policy Virtual Keys
      • πŸ”₯FireBlocks Raw Signing
        • Fireblocks signing in Guardian UI
        • Getting Keys from FireBlocks UI
      • πŸ™Roles & Permissions
        • πŸ’»Roles and Permissions User Guide
        • βš™οΈAPIs related to Roles & Permissions
          • Returns list of all permissions
          • Returns list of all roles
          • Creates a New Role
          • Updates Role Configuration
          • Deletes Role
          • Setting Default Role
          • Returns list of all users for whom the current user can change the role
          • Retrieves information about the user (roles, permissions assigned policies)
          • Updates User Roles (only SR)
          • Returns list of all Policies
          • Assigns Policies to a User - Only SR
          • Updates user roles (for ordinary uses)
          • Assigns policies to a user (for ordinary users)
      • Decentralized Guardian
        • Remote Policy UI
        • APIs
          • Returns the list of requests for adding remote policies
          • Previews the policy from IPFS without loading it into the local DB.
          • Policy Import from IPFS
          • Approves policy Asynchronously
          • Rejects policy Asynchronously
          • Approves Policy
          • Rejects policy
          • Return a list of all policies
          • Approves a request for an action from a remote Guardian
          • Rejects a request for an action from a remote Guardian
          • Return a count of policy requests
      • Change Password
        • Password Security Hardening and Change Password using UI
        • βš™οΈAPI related to Change Password
          • Change Password
      • πŸ“TrustChain
        • βš™οΈTrustChain APIs
          • Requesting
          • Building and returning
      • 🏜️External Events
        • πŸ› οΈMonitoring Tools
          • ⛏️Application-events module
        • βš™οΈSend Data using the External Data APIs
          • Sends Data from an External Source
      • πŸ“±Mobile Support for Data Interface
        • πŸ“±Mobile operation for the Standard Registry
      • πŸ› οΈStandard Registry Operations
        • βš™οΈSettings APIs
          • Displaying Current Settings
          • Adding Settings
        • βš™οΈLogs APIs
          • Returning Logs
          • Returning Log Attributes
        • βš™οΈTask Statuses APIs
          • Returning Task Statuses
      • πŸ“ΉDemo Experience
    • 🀡Users
      • πŸ› οΈUser Operations
        • βš™οΈAccount APIs
          • Authentication Process
          • User listing except Standard Registry and Auditor
          • User Balance
          • User Session
          • User Login
          • Registering new account
          • Returns all Standard Registries
          • Returns Access Token
        • Profile APIs
          • User Account Balance
          • User Account Information
          • Setting User Credentials
          • Setting User Credentials Asynchronously
      • πŸ“±Mobile Support for Data Interface
        • πŸ“±Mobile Operation for the user
      • πŸ› οΈUser Profile Setup
      • πŸ€–AI Search
        • πŸ’»AI Search using UI
        • βš™οΈAI Search APIs
          • Returns response
          • Rebuilds vector based on policy data
      • πŸ”ŽGuided Search of Methodologies
        • πŸ’»Search using UI
        • βš™οΈSearch APIs
          • Retrieves list of all categories
          • List of policies that are best suited for given parameters
      • βœ–οΈMulti Policy
        • πŸ’»Configuring Multi Policy using UI
      • Bottom Up Data Traceability
        • Bottom Up Data Traceability using UI
        • βš™οΈRelated APIs
          • Create new Statistics Definition
          • Get the list of Statistics Definitions
          • Retrieve details of the Statistics Definition by ID
          • Update configuration of the Statistics Definition by ID
          • Delete the Statistics Definition by ID
          • Publish Statistics Definition by ID
          • Retrieve the list of linked schemas and policy
          • Retrieve the list of all documents conforming the rules of the Statistics Definition.
          • Create a new Statistics Assessment based on the Statistics Definition
          • Retrieve the list of existing Statistics Assessment
          • Retrieve the Statistics Assessment by ID
          • Retrieve all VC documents related to the Statistics Assessment
    • πŸͺ™Tokens
      • πŸ’»Creating Token using UI
      • πŸ“’Token Template
        • Creating Token Template using UI
        • Creating Token through UI using Token Template
      • πŸ“–Token Authenticity
        • ℹ️Establishing Token Authenticity
      • Dynamic Token Creation in Policies
        • Dynamic Token Creation in Guardian Policies using UI
      • πŸ› οΈToken Operations
        • βš™οΈToken APIs
          • Token Listing
          • Creation of Token
          • User Info for selected token
          • Associates the user with token
          • Disassociates the user with token
          • Grants KYC for the user
          • Revoke KYC of the user
          • Freeze Tokens of a user
          • UnFreeze Tokens of a user
          • Returns Token Serials
        • βš™οΈAPIs for Asynchronous Execution
          • Token Creation
          • Associating User with the Hedera Token
          • Disassociating User with the Hedera Token
          • Setting KYC for the User
          • Unsetting KYC for the User
      • πŸ“”Token Retirement Contract
        • πŸ’»Creating Contract using UI
        • ⛓️TrustChain representation of token retirement
        • βš™οΈRetirement APIs
          • Returning all contracts
          • Creating new Contract
          • Importing new Contract
          • Get Contract Permissions
          • Removing Contract
          • Returns a list of all Wipe requests
          • Enabling Wipe Requests
          • Disabling Wipe Requests
          • Approving Wipe Requests
          • Rejecting Wipe Requests
          • Clearing Wipe Requests
          • Adding Wipe Admin
          • Removing Wipe Admin
          • Adding Wipe Manager
          • Removing Wipe Manager
          • Adding Wipe Wiper
          • Removing Wipe Wiper
          • Syncing Retire Pools
          • Returning list of all Retire Requests
          • Returning list of all Retire Pools
          • Deleting Retire Requests
          • Deleting Retire Pools
          • Setting Retire Pools
          • Unsetting Retire Pool
          • Unsetting Retire Request
          • Retiring Tokens
          • Approving Retire Request
          • Cancelling Retire Request
          • Adding Retire Admin
          • Removing Retire Admin
          • Returning all Retired VCs
          • Adding Wipe for specific token
          • Remove Wipe request for specific token
          • Deleting Wipe request for Hedera Account
          • Get Retirement VCs from Indexer
    • πŸ‘ΎAutomation Testing
      • πŸ’»Performing API Automation Testing
      • πŸ’»Performing UI Automation Testing
    • πŸ“•Logging Configuration using Pino Library
    • πŸ“”Guidance for Open Source Policy Submissions
    • πŸ“Demo Guide
      • πŸ”‹Renewable Energy Credits
        • πŸ“–Introduction to International Renewable Energy Credit Standard (iREC)
        • βš™οΈiREC API Demo Guide
        • βš™οΈDemo Using APIs and UI
        • πŸ’»iREC 5 Demo UI Guide
        • βš™οΈiREC 5 json
        • πŸ’»iREC 7 User Journey UI Demo Guide
        • πŸ’»iREC 7 Demo UI Guide
      • ☘️Carbon Offsets
        • πŸ“–Introduction to Verra Redd+
        • πŸ’»Verra Redd VM0007 Demo UI Guide
        • πŸ’»Verra Redd_3 User Journey Demo UI Guide
        • 🎍VM0017 Adoption of Sustainable Agricultural Land Management, v1.0
        • 🎍VM0042 Methodology for Improved Agricultural Land Management
        • 🌲Verra VM0047 - Afforestation, Reforestation, and Revegetation (ARR) v0.1
        • 🌲Gold Standard Afforestation and Reforestation (AR) v2.0
        • πŸƒDovu Methodologies
        • πŸ€Dovu MMCM
        • ♨️Improved Cookstove
        • ♨️GoldStandard - Metered Energy Cooking
        • πŸ€Carbon Reduction Measurement - GHG Corporate Standard Policy Guid
        • 🏒VM0044 Methodology for Biochar Utilization in Soil and Non-Soil Applications
        • 🏭CDM AMS-III.AR : Substituting fossil fuel based lighting with LED/CFL lighting systems
        • 🏨CDM AMS II.G: Energy Efficiency Measures in Thermal Applications of Non-Renewable Biomass
        • 🏭CDM AMS III.D: Methane Recovery in Animal Manure Management Systems
        • 🏭CDM AMS III.BB: Electrification of communities through grid extension
        • 🏭CDM AR-ACM0003: Methodology for Afforestation and Reforestation of Lands Except Wetlands
        • 🏭CDM ACM0001: Flaring or Use of Landfill Gas
        • 🏭CDM ACM0002: Grid-Connected Electricity Generation from Renewable Sources
        • 🏭CDM ACM0006: Electricity and Heat Generation from Biomass
        • 🏒CDM ACM0007: Conversion from Single Cycle to Combined Cycle Power Generation
        • 🏭CDM AMS-I.A.: Electricity Generation by the User
        • 🏭CDM AMS-I.C.: Thermal Energy Production with or Without Electricity
        • 🏨CDM AMS-I.F.: Renewable Electricity Generation for Captive Use and Mini-Grid
        • 🏭CDM AMS-II.J.: Demand-Side Activities for Efficient Lighting Technologies
        • 🏨CDM AMS-III.AV.: Low Greenhouse Gas Emitting Safe Drinking Water Production Systems
        • 🏭CDM AMS-III.F.: Avoidance of Methane Emissions Through Composting
        • 🏒CDM AMS-III.H.: Methane Recovery in Wastewater Treatment
        • 🏭CDM ACM0018: Electricity Generation from Biomass in Power-Only Plants
        • ⬇️Verra PWRM0001 :Plastic Waste Collection Methodology
        • 🏭VM0041 Methodology for the Reduction of Enteric Methane Emissions from Ruminants through the Use of
        • πŸ₯‡Carbon Sequestration through Accelerated Carbonation of Concrete Aggregate
        • 🏭AMS-I.D: Grid Connected Renewable Electricity Generation – v.18.0
        • 🏭PWRM0002 : Plastic Waste Recycling Methodology
        • 🍚Methane Emission Reduction by Adjusted Water Management Practice in Rice Cultivation
        • β›½Verra VMR0006: Energy Efficiency and Fuel Switch Measures in Thermal Applications
        • 🌩️AMS-I.E Switch from Non-Renewable Biomass for Thermal Applications by the User
        • GCCM001 v.4 Methodology for Renewable Energy Generation Projects Supplying Electricity to Grid
        • Landfill Gas Destruction and Beneficial Use Projects, Version 2.0
        • Climate Action Reserve’s U.S. Landfill Protocol Version 6.0
        • VM0042 Improved Agricultural Land Management, v2.1
      • 🏭Carbon Emissions
        • 🏑Remote Work GHG Policy
          • πŸ“–Introduction to Remote Work GHG
          • πŸ’»GHG Policy User Journey UI Demo Guide
          • πŸ’»Remote GHG Policy Demo Guide
        • 🏒Carbon Emissions Measurement - GHG Corporate Standard Policy Guide
        • 🏭atma GHG Scope II Carbon Emission Policy
        • 🏭Atma Scope 3 GHG Policy
        • 🏭GHGP Corporate Standard
        • 🏭GHGP Corporate Standard V2
        • Climate Action Reserve’s U.S. Landfill Protocol Version 6.0
        • Landfill Gas Destruction and Beneficial Use Projects, Version 2.0
    • ❓FAQs
    • πŸ‘¬Community Standards
      • Guardian Policy Standards (GPS)
      • Guardian System Standards (GSS)
      • Proposal for Defining Standards
  • Feedback
    • Feedback in Pipelines
  • πŸ“ˆGuardian in Production
    • πŸ“„API Architecture Customization
    • πŸ“‰Monitoring tools
    • Performance Improvement
    • Cloud Infrastructure
    • Independent Packaged Deployment
Powered by GitBook
On this page
  • Step By Step Process
  • Process on How to Configure SSL Encryption:
  • Demo Video
  • Troubleshoot
  1. Guardian
  2. Getting Started
  3. Installation Guide
  4. Installation

Building from source and run using Docker

Last updated 6 months ago

Step By Step Process

The following steps need to be executed in order to start Guardian using docker:

  1. Clone the repo

  2. Configure project level .env file

  3. Update BC access variables

  4. Setup IPFS

  5. Setting up ChatGPT Key (if required)

  6. Build and launch with Docker

  7. Browse to

  8. For increased security remove credentials from .env file

Here the steps description follows:

  1. Clone the repo

    git clone https://github.com/hashgraph/guardian.git
  2. Configure project level .env file.

The main configuration file that needs to be provided to the Guardian system is the .env file. Note that these files contain sensitive configuration such as keys and access credentials which are only used at the initial start of Guardian. For increased security it is recommended to disable inbound network access until after the first run of Guardian, when the credentials configuration has been removed from .env file (see p8 below).

For this example purpose let's name the Guardian platform as "develop"

   GUARDIAN_ENV="develop"

Note Every single service is provided in its folder with a .env.template file, this set of files are only needed for the case of Manual installation.

  1. ./configs/.env.\<GUARDIAN_ENV\>.guardian.system

There will be other steps in the Demo Usage Guide that will be required for the generation of Operator_ID and Operator_Key. It is important to mention that the Operator_ID and Operator_Key in the ./configs/.env.<GUARDIAN_ENV>.guardian.system will be used to generate demo accounts.

The parameter HEDERA_NET may assume the following values: mainnet, testnet, previewnet, localnode. choose the right value depending on your target Hedera network on which the OPERATOR_ID has been defined.

As examples:

following the previous example, the file to configure should be named: ./configs/.env.develop.guardian.system, this file is already provided in the folder as example, only update the variables OPERATOR_ID, OPERATOR_KEY and HEDERA_NET.

OPERATOR_ID="..."
OPERATOR_KEY="..."
HEDERA_NET="..."

Starting from Multi-environment release (2.13.0) it has been introduced a new parameter PREUSED_HEDERA_NET. Multienvironemnt is a breaking change and the configuration of this parameter intend to smooth the upgrading. PREUSED_HEDERA_NET configuration depends on the installation context.

  • If the installation is a completely new one just remove the parameter and feel free to jump to the next paragraph.

  • if you are upgrading from a release after the Multi-environment (>= to 2.13.0) do not change the state of this parameter (so if you removed the parameter in some previous installation do not introduce it).

  • if the installation is an upgrading from a release previous of the Multi-environment (<= to 2.13.0) to a following one you need to configure the PREUSED_HEDERA_NET. After that the parameter will last in the configuration unchanged.

3.1. PREUSED_HEDERA_NET configuration

The PREUSED_HEDERA_NET parameter is intended to hold the target Hedera network that the system already started to notarize data to. PREUSED_HEDERA_NET is the reference to the HEDERA_NET that was in usa before the upgrade. To let the Multi-environment transition happen in a transparent way the GUARDIAN_ENV parameter in the .env file has to be configured as empty while the PREUSED_HEDERA_NET has to be set with the same value configured in the HEDERA_NET parameter in the previous configuration file.

PREUSED_HEDERA_NET never needs to be changed after the first initialization. On the contrary it will be possible to change HEDERA_NET to dials with all the Hedera different networks.

  • as first Example:

in case of the upgrading from a release minor then 2.13.0 to a bigger one and keep using the same HEDERA_NET="Mainnet"(as example)

configure the name the Guardian platform as empty in the .env file

   GUARDIAN_ENV=""

In this case the configuration is stored in the file named: ./configs/.env..guardian.system, and is already provided in the folder as example, update the variables OPERATOR_ID and OPERATOR_KEY.

OPERATOR_ID="..."
OPERATOR_KEY="..."

PREUSED_HEDERA_NET is the reference to your previous HEDERA_NET configuration then you should set its value to match your previous HEDERA_NET configuration.

HEDERA_NET="mainnet"
PREUSED_HEDERA_NET="mainnet"

because you are keeping on using HEDERA_NET as it was pointing to the "mainnet" in the previous installation too.

  • As a second example: to test the new release change the HEDERA_NET to "testnet". This is the complete configuration:

Set the name of the Guardian platform to whatever descripting name in the .env file

   GUARDIAN_ENV="testupgrading"

In this case the configuration is stored in the file named: ./configs/.env.testupgrading.guardian.system again update the variables OPERATOR_ID and OPERATOR_KEY using your testnet account.

OPERATOR_ID="..."
OPERATOR_KEY="..."

set the HEDERA_NET="testnet" and set the PREUSED_HEDERA_NET to refer to the mainnet as you wish that Mainet data remains unchanged.

HEDERA_NET="testnet"
PREUSED_HEDERA_NET="mainnet"

Note. You can use the Schema Topic ID (INITIALIZATION_TOPIC_ID) already present in the configuration files, or you can specify your own.

Note for any other GUARDIAN_ENV name of your choice just copy and paste the file /configs/.env.template.guardian.system and rename as /configs/.env.<choosen name>.guardian.system

3.2 Setting up JWT keys in /.env file

4. Now, we have two options to setup IPFS node : 1. Local node 2. IPFS Web3Storage node.

4.1 Setting up IPFS Local node:

  • 4.1.2 For setup IPFS local node you need to set variables in the same file ./configs/.env.develop.guardian.system

IPFS_NODE_ADDRESS="..." # Default IPFS_NODE_ADDRESS="http://ipfs-node:5001"
IPFS_PUBLIC_GATEWAY='...' # Default IPFS_PUBLIC_GATEWAY='http://ipfs-node:8080/ipfs/${cid}'
IPFS_PROVIDER="local"

Note:

4.2 Setting up IPFS Web3Storage node:

For setup IPFS web3storage node you need to set variables in file ./configs/.env..guardian.system:

IPFS_PROVIDER="web3storage"
IPFS_STORAGE_KEY="..."
IPFS_STORAGE_PROOF="..."

4.3 Setting up IPFS Filebase Bucket:

To configure the Filebase IPFS provider, set the following variables in the file ./configs/.env.<environment>.guardian.system:

IPFS_STORAGE_API_KEY="Generated Firebase Bucket Token"
IPFS_PROVIDER="filebase"

Create a new "bucket" on Filebase since we utilize the IPFS Pinning Service API Endpoint service. The token generated for a bucket corresponds to the IPFS_STORAGE_API_KEY environment variable within the guardian's configuration.

4.4 Implement and test a custom IPFS provider:

We provide a flexible workflow for integrating additional IPFS providers:

  • Configure your environment variables under "configs/".

  • In the "worker-service" directory, execute yarn test:ipfs to:

    • Build the project within the directory.

    • Run tests to verify the validity of your configuration without needing to build the entire Guardian system.

  • To add a new provider, extend the "IpfsProvider" enum in the "ipfs-client" with your provider's enum value and implement your logic following the given examples. Consider the following recommendations:

    • Design your logic based on interfaces for greater simplicity and maintainability (This requires more work in v2.20.x).

    • Ensure that a custom validator for your new client is present in the "worker-service".

    • Test iteratively by running yarn test:ipfs in the "worker-service" directory until your client is fully functional with your desired configuration.

    This streamlined process allows any product team to swiftly integrate new IPFS clients into the Guardian system, significantly reducing development time

5. Setting up Chat GPT API KEY to enable AI Search and Guided Search:

For setting up AI and Guided Search, we need to set OPENAI_API_KEY variable in ./configs/.env* files.

OPENAI_API_KEY="..."
  1. Build and launch with Docker. Make sure you use Docker Compose V2 (comes with Docker Desktop > 3.6.0) as at https://docs.docker.com/compose/install/. Please note that this build is meant to be used in production and will not contain any debug information. From the project's root folder:

docker-compose up -d --build

Note:

About docker-compose: from the end of June 2023 Compose V1 won’t be supported anymore and will be removed from all Docker Desktop versions. Make sure you use Docker Compose V2 (comes with Docker Desktop > 3.6.0) as at https://docs.docker.com/compose/install/

  1. For increased security remove credentials from .env file and enable network access

On first state the credentials from .env file are copied into the secure storage as configured (e.g. Vault). After that Guardian does not use any credentials stored in the .env file, thus they should be removed for security reasons.

Process on How to Configure SSL Encryption:

  1. Navigate to certs folder and execute

mkcert -install
mkcert -cert-file server-cert.pem -key-file server-key.pem localhost ::1
mkcert -client -cert-file client-cert.pem -key-file client-key.pem localhost ::1 email@localhost
  1. Edit configs/nats.conf and uncomment the tls section

  2. Set TLS_NATS variable to true (edited)

Demo Video

Troubleshoot

To delete all the Docker Containers

docker builder prune --all

To run by cleaning Docker Cache

docker-compose build --no-cache

In the subsection you’ll find the following examples:

Update the following files with your Hedera Testnet account info (see prerequisites) as indicated. Please check complete steps to generate Operator_ID and Operator_Key by looking at the link: . The Operator_ID and Operator_Key and HEDERA_NET are all that Guardian needs to access the Hedera Blockchain assuming a role on it. This parameters needs to be configured in a file at the path ./configs, the file should use the following naming convention:

This configuration allows you to leave untouched all the data referring to Mainnet in the Database while testing on Testnet. Refer to Guardian for more details.

To start of auth-service it is necessary to fill in JWT_PRIVATE_KEY and JWT_PUBLIC_KEY, which are RSA key pair. You can generate it in any convenient way, for example, using this service .

4.1.1 We need to install and configure any IPFS node.

Default IPFS_NODE_ADDRESS=""

Default IPFS_PUBLIC_GATEWAY=""

To configure access to the IPFS upload API from web3.storage for your Guardian instance you need to set correct values to the following variables in the ./configs/.env.<environment>.guardian.system file.

To know complete process of How to setup IPFS Storage variables, please check

For detailed setup instructions, refer to the official .

Browse to and complete the setup. To get more info, please check:

Install utility

🌏
πŸ“–
πŸ› οΈ
πŸ”¨
How to Create Operator_ID and Operator_Key
documentation
https://travistidwell.com/jsencrypt/demo/
example
http://ipfs-node:5001
http://ipfs-node:8080/ipfs/${cid}
w3up
How to generate Web3.Storage API values
https://docs.filebase.com/api-documentation/ipfs-pinning-service-api
http://localhost:3000
Launching Guardian
https://github.com/FiloSottile/mkcert
Youtube
Steps on how to deploy Guardian using a default Environment
Steps on how to deploy Guardian using a default Environment ( Develop )
Steps on how to deploy Guardian using a default Environment ( QA )
http://localhost:3000
Step By Step Process
Demo Video
Troubleshoot