diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 544bb931b..e1e29bd26 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -116,7 +116,7 @@ jobs: context: . file: ./auth-service/Dockerfile.demo push: true - tags: 'gcr.io/hedera-registry/auth-service:${{ steps.package-version.outputs.current-version}}, gcr.io/hedera-registry/auth-service:latest' + tags: 'gcr.io/hedera-registry/auth-service-demo:${{ steps.package-version.outputs.current-version}}, gcr.io/hedera-registry/auth-service-demo:latest' - name: auth-service if: ${{ steps.latestTag.outputs.value == 'hotfix'}} @@ -134,7 +134,7 @@ jobs: context: . file: ./auth-service/Dockerfile.demo push: true - tags: 'gcr.io/hedera-registry/auth-service:${{ steps.package-version.outputs.current-version}}' + tags: 'gcr.io/hedera-registry/auth-service-demo:${{ steps.package-version.outputs.current-version}}' - name: api-gateway-latest if: ${{ steps.latestTag.outputs.value == 'latest'}} @@ -152,7 +152,7 @@ jobs: context: . file: ./api-gateway/Dockerfile.demo push: true - tags: 'gcr.io/hedera-registry/api-gateway:${{ steps.package-version.outputs.current-version}}, gcr.io/hedera-registry/api-gateway:latest' + tags: 'gcr.io/hedera-registry/api-gateway-demo:${{ steps.package-version.outputs.current-version}}, gcr.io/hedera-registry/api-gateway-demo:latest' - name: api-gateway if: ${{ steps.latestTag.outputs.value == 'hotfix'}} @@ -170,7 +170,7 @@ jobs: context: . file: ./api-gateway/Dockerfile.demo push: true - tags: 'gcr.io/hedera-registry/api-gateway:${{ steps.package-version.outputs.current-version}}' + tags: 'gcr.io/hedera-registry/api-gateway-demo:${{ steps.package-version.outputs.current-version}}' - name: policy-service-latest if: ${{ steps.latestTag.outputs.value == 'latest'}} diff --git a/Methodology Library/CDM/CDM AMS-III.D/AMS-III.D Schema.xlsx b/Methodology Library/CDM/CDM AMS-III.D/AMS-III.D Schema.xlsx new file mode 100644 index 000000000..9c02926b6 Binary files /dev/null and b/Methodology Library/CDM/CDM AMS-III.D/AMS-III.D Schema.xlsx differ diff --git a/Methodology Library/CDM/CDM AMS-III.D/readme.md b/Methodology Library/CDM/CDM AMS-III.D/readme.md new file mode 100644 index 000000000..39a7cd2d4 --- /dev/null +++ b/Methodology Library/CDM/CDM AMS-III.D/readme.md @@ -0,0 +1,171 @@ +## Table of contents + + +- Introduction +- Need and Use for the AMS-III.D Policy +- Demo Video +- Policy Workflow +- Policy Guide + - Available Roles +- Important Documents & Schemas +- Token (Carbon Emission Reduction) + - Step By Step + + +## Introduction + +In the pursuit of sustainable practices, AMS-III.D can be used as a methodology to reshape anaerobic manure management practices. The pressing global concern surrounding methane emissions and the environmental impact of livestock farming has prompted the development of this innovative strategy under the Clean Development Mechanism (CDM). By focusing on the modification or replacement of existing anaerobic systems and optimizing the recovery of methane, AMS-III.D sets a course to address greenhouse gas (GHG) emissions and encourage efficient energy utilization. + +The urgency to mitigate methane's potent contribution to climate change highlights the importance of using a methodology like AMS-III.D. +This methodology centers on anaerobic manure management systems in livestock farms by introducing ways to quantify the emissions and reductions from advanced technologies used for capturing, utilizing, and properly disposing of methane. When these technologies are not utilized, methane emissions from manure management can significantly contribute to the greenhouse effect. AMS-III.D considers the use of captured methane for energy or its responsible elimination through processes like flaring or combustion. This approach not only prevents methane from entering the atmosphere but also unlocks the potential to harness methane as a valuable energy source. + +AMS-III.D's framework is enriched by the incorporation of several essential methodological tools, each designed to ensure accuracy and consistency in emission calculations. Referencing tools such as "Tool to calculate project or leakage CO2 emissions from fossil fuel combustion," "Tool to calculate baseline, project and/or leakage emissions from electricity consumption," "Tool to determine project emissions from flaring gases containing methane," and "Project and leakage emissions from anaerobic digesters," this methodology encapsulates the schemas and parameters necessary for precise assessments. These tools play a pivotal role in calculating baseline emissions, project emissions, leakage, and emission reductions, reinforcing the integrity of AMS-III.D as a comprehensive approach to sustainable manure management practices. + +Significantly, AMS-III.D recognizes the environmental risks associated with conventional practices in instances where anaerobic digesters are not employed. In such cases, untreated manure can lead to substantial methane emissions, with far-reaching implications for the climate and local ecosystems. Methane, being a potent greenhouse gas, possesses a higher heat-trapping capacity than carbon dioxide over shorter periods. By adopting the methodologies outlined in AMS-III.D, which includes adhering to specific conditions and monitoring parameters, the release of methane into the environment can be mitigated. This methodology not only ensures the reduction of methane emissions but also demonstrates its commitment to sustainable development, merging environmental stewardship with innovative agricultural practices. + +## Need and Use for the AMS-III.D Policy + +Globally, the emission of methane – a potent greenhouse gas – from conventional manure management remains an urgent concern. Methane, often underestimated but with a significant impact on climate change, holds the capacity to trap heat in the atmosphere approximately 25 times more effectively than carbon dioxide over a century. This highlights the immediate need for methodologies like AMS-III.D to mitigate the profound influence of methane emissions on global warming. + +Manure management practices, particularly within livestock farming, play a substantial role in methane emissions. When manure is improperly treated or left untreated, it undergoes anaerobic decomposition, releasing methane gas as a natural byproduct. This significantly contributes to the accumulation of atmospheric methane. Additionally, specific manure management systems, such as lagoons, provide an environment conducive to methane production due to the absence of oxygen during decomposition. These emissions amplify the environmental impact of the agriculture sector and contribute to the broader challenge of anthropogenic greenhouse gas emissions. + +In the context of modern emission reduction projects, the necessity for transparency and credibility is undeniable. The Guardian, a platform built on the Hedera Network, emerges as a solution to challenges like double counting and fraud. Hedera's distributed ledger technology ensures immutable and transparent record-keeping, thereby enhancing the accountability and integrity of emission reduction initiatives. As the Guardian platform streamlines processes, enhances accuracy, and fosters trust within clean manure management projects, AMS-III.D not only bolsters its environmental impact but also highlights the role of cutting-edge technology in propelling a greener, more sustainable future. + + +## Demo Video + +Coming Soon + +## Policy Workflow + +image + + +## Policy Guide + +This policy is published to Hedera network and can either be imported via Github (.policy file) or IPSF timestamp. + +Policy: 1693223777.317635003 + +### Available Roles + +- Project Proponent - The project proponent is responsible for executing the emission reduction project. The project proponent must adhere to the requirements outlined by the CDM and provide evidence of the emission reductions achieved. Upon successful verification, the project proponent receives certified emission reduction (CER) tokens as an incentive for their emission reductions. +- Verification and Validation Body (VVB) - The VVB plays a critical role in independently verifying and validating the project data submitted by the project proponent. They thoroughly assess the project's emission reduction potential, methodologies, and adherence to the policy guidelines. Based on their evaluation, the VVB either approves or rejects the project for registration. +- Designated National Authority (DNA) - The DNA is a governmental body representing the country where the emission reduction project is being implemented. They review and approve the project's eligibility in accordance with national policies and regulations. The DNA's endorsement is essential for the project to proceed with the AMS-III.D policy. +- Registry (UNFCCC) - The United Nations Framework Convention on Climate Change (UNFCCC) serves as the registry for the CDM. They oversee the multiple workflow steps involved in the project's approval, including the verification and validation process by the VVB and the endorsement by the DNA. The UNFCCC's approval is necessary for the project's successful registration and issuance of CER tokens + +### Important Documents & Schemas + +**Methodological Tool 03** - Tool to calculate project or leakage CO2 emissions from fossil fuel combustion. + +**Methodological Tool 05** – Baseline, project and/or leakage emissions from electricity consumption and monitoring of electricity generation. + +**Methodological Tool 06** - Tool to determine project emissions from flaring gases containing methane. + +**Methodological Tool 14** – Project and leakage emissions from anaerobic digesters. + +**Project Description** - Project Proponent information, standard project information, methodology information like baseline emissions, project emissions, etc. + +**Emissions Reduction** – Schema included within the project information form; this is filled out by the project proponent to calculate annual emission reductions. + +**Monitoring Report** – The monitoring report is to be filled out based on the monitoring plan mentioned within the methodology. + + +### Token(Carbon Emissions Reduction) + +Certified Emission Reduction (CER) credits, each equivalent to one tonne of CO2. + + +### Step By Step + +1. The policy can be imported using IPFS timestamp 1693223777.317635003 + + image + +2. Select “Import”. + + image + +3. Place status in “Dry Run” and select “Go”. + + image + +4. By selecting the edit button in the operations tab, you can access the policy configurator and view the workflow blocks. + + image + +5. Going back to the policy workflow, add users by selecting the “create user” button. Then select the dropdown user menu and select “Virtual User 1”. + + image + +6. Virtual User 1 will be assigned to the Project_Proponent + + image + +7. Virtual User 2 will be assigned to the VVB + + image + +8. Add the VVBs name + + image + +9. The final role that will be assigned to Virtual User 3 is the Designated National Authority + + image + +10. Go to the Administrator’s (Standard Registry) profile. The Standard Registry can now approve the VVB. + + image + +11. Click on the Users dropdown menu and select Virtual User 1 (Project Proponent) and select the “New Project” button. + + image + +12. Once the form is completed, go to Virtual User 3’s (Designated National Authority) profile. The Designated National Authority can now view the project information document by selecting “view document” and then they can select validate or reject. + + image + +13. Return to the Administrator’s (Standard Registry) profile. The Standard Registry now has access to the project information document by clicking “view document” once they have reviewed it they can select “Add” to add the project to the project pipeline. + + image + +14. Navigate back to Virtual User 1’s (Project Proponent) profile and assign the VVB. + + image + +15. Go to the VVB profile and select the “Project” tab. The VVB can now see all the information submitted by the Project Proponent. Once the document has been reviewed the VVB will select Approve or Reject. + + image + +16. Navigate back to the Administrator. For this workflow step the Standard Registry reviews the document and adds the project to the project pipeline. Select Add. + + image + +17. Navigate back to Virtual User 1’s (Project Proponent) profile and select “Add Report”. + + image + +18. Go to the Virtual User 2’s (VVB) profile. The VVB has access to the monitoring report form by selecting “View Document”. Then the VVB can select Verify or Reject. + + image + +19. Navigate back to the Administrator’s profile and select the “Mint” button. + + image + +20. The status should now say “Minted”. + + image + +21. By selecting the “Token History” tab you can see the number of tokens minted and then you can select “View TrustChain” + + image + +22. The Verified Presentation should now be open. You can view information like the recipient's name, token amount, mint date, verified signature, etc. This example resulted in 0 tokens minted due to the demo values used. + + image + +23. By scrolling to the bottom of the page you can view the TrustChain. + + image diff --git a/Methodology Library/iREC/Policies/IRec Policy 4.policy b/Methodology Library/iREC/Policies/IRec Policy 4.policy deleted file mode 100644 index d842aa831..000000000 Binary files a/Methodology Library/iREC/Policies/IRec Policy 4.policy and /dev/null differ diff --git a/README.md b/README.md index 7434e577d..0086e487c 100644 --- a/README.md +++ b/README.md @@ -171,7 +171,7 @@ To let the Multi-environment transition happen in a transparent way the `GUARDIA ``` - IPFS_NODE_ADDRESS="..." # Default IPFS_NODE_ADDRESS="http://localhost:5002" + IPFS_NODE_ADDRESS="..." # Default IPFS_NODE_ADDRESS="http://localhost:5001" IPFS_PUBLIC_GATEWAY='...' # Default IPFS_PUBLIC_GATEWAY='https://localhost:8080/ipfs/${cid}' IPFS_PROVIDER="local" ``` diff --git a/analytics-service/package.json b/analytics-service/package.json index f3ecc6abe..4b08e8304 100644 --- a/analytics-service/package.json +++ b/analytics-service/package.json @@ -9,8 +9,8 @@ }, "author": "Envision Blockchain Solutions ", "dependencies": { - "@guardian/common": "^2.16.0-prerelease", - "@guardian/interfaces": "^2.16.0-prerelease", + "@guardian/common": "^2.16.0", + "@guardian/interfaces": "^2.16.0", "@nestjs/common": "^9.4.1", "@nestjs/core": "^9.4.1", "@nestjs/jwt": "^10.0.3", @@ -76,6 +76,5 @@ "start": "node dist/index.js", "test": "mocha tests/**/*.test.js --reporter mocha-junit-reporter --reporter-options mochaFile=../test_results/ui-service.xml" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/api-gateway/package.json b/api-gateway/package.json index 5dec8e292..111dd0680 100644 --- a/api-gateway/package.json +++ b/api-gateway/package.json @@ -8,8 +8,8 @@ }, "author": "Envision Blockchain Solutions ", "dependencies": { - "@guardian/common": "^2.16.0-prerelease", - "@guardian/interfaces": "^2.16.0-prerelease", + "@guardian/common": "^2.16.0", + "@guardian/interfaces": "^2.16.0", "@nestjs/common": "^9.4.1", "@nestjs/core": "^9.4.1", "@nestjs/jwt": "^10.0.3", @@ -76,6 +76,5 @@ "start": "node dist/index.js", "test": "mocha tests/**/*.test.js --reporter mocha-junit-reporter --reporter-options mochaFile=../test_results/ui-service.xml" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/api-gateway/src/api/service/account.ts b/api-gateway/src/api/service/account.ts index 12e3f7f69..7746291ed 100644 --- a/api-gateway/src/api/service/account.ts +++ b/api-gateway/src/api/service/account.ts @@ -105,8 +105,8 @@ export class AccountApi { try { await checkPermission(UserRole.STANDARD_REGISTRY)(user); } catch (error) { - new Logger().error(error, ['API_GATEWAY']); - throw error; + new Logger().error(error.message, ['API_GATEWAY']); + throw new HttpException(error.message, HttpStatus.INTERNAL_SERVER_ERROR); } } try { @@ -132,7 +132,7 @@ export class AccountApi { if (error.message.includes('already exists')) { throw new HttpException('An account with the same name already exists.', HttpStatus.INTERNAL_SERVER_ERROR); } - throw error; + throw new HttpException(error.message, HttpStatus.INTERNAL_SERVER_ERROR); } } @@ -163,8 +163,8 @@ export class AccountApi { const {username, password} = body; return await users.generateNewToken(username, password) as any; } catch (error) { - new Logger().error(error, ['API_GATEWAY']); - throw error; + new Logger().warn(error.message, ['API_GATEWAY']); + throw new HttpException(error.message, HttpStatus.UNAUTHORIZED); } } diff --git a/api-tests/package.json b/api-tests/package.json index 2085febdb..30dbf390a 100644 --- a/api-tests/package.json +++ b/api-tests/package.json @@ -1,6 +1,6 @@ { "name": "api-tests", - "version": "2.16.0-prerelease", + "version": "2.16.0", "description": "API Tests", "main": "index.js", "scripts": { @@ -25,6 +25,5 @@ "gulp-rename": "^2.0.0", "gulp-sourcemaps": "^3.0.0", "gulp-typescript": "^6.0.0-alpha.1" - }, - "stableVersion": "2.15.0" + } } diff --git a/auth-service/package.json b/auth-service/package.json index dc9fe22ff..1327a6db8 100644 --- a/auth-service/package.json +++ b/auth-service/package.json @@ -6,8 +6,8 @@ }, "author": "Envision Blockchain Solutions ", "dependencies": { - "@guardian/common": "^2.16.0-prerelease", - "@guardian/interfaces": "^2.16.0-prerelease", + "@guardian/common": "^2.16.0", + "@guardian/interfaces": "^2.16.0", "@meeco/cryppo": "^2.0.2", "@mikro-orm/core": "5.7.12", "@mikro-orm/mongodb": "5.7.12", @@ -69,6 +69,5 @@ "start": "node dist/index.js", "test": "mocha tests/**/*.test.js --reporter mocha-junit-reporter --reporter-options mochaFile=../test_results/ui-service.xml" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/common/package.json b/common/package.json index 6f57c5bd7..3d22bb6a0 100644 --- a/common/package.json +++ b/common/package.json @@ -5,7 +5,7 @@ "@azure/identity": "^3.2.2", "@azure/keyvault-secrets": "^4.7.0", "@google-cloud/secret-manager": "^4.2.2", - "@guardian/interfaces": "^2.16.0-prerelease", + "@guardian/interfaces": "^2.16.0", "@hashgraph/sdk": "2.24.2", "@mattrglobal/jsonld-signatures-bbs": "^1.1.2", "@meeco/cryppo": "^2.0.2", @@ -75,6 +75,5 @@ "test:local": "mocha tests/**/*.test.js --exit", "test:stability": "mocha tests/stability.test.js" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/configs/.env..guardian.system b/configs/.env..guardian.system index 5077e91c9..7b2d075af 100644 --- a/configs/.env..guardian.system +++ b/configs/.env..guardian.system @@ -65,7 +65,7 @@ IPFS_TIMEOUT="720" IPFS_PROVIDER="web3storage" # 'web3storage' or 'local' IPFS_PUBLIC_GATEWAY='https://ipfs.io/ipfs/${cid}' IPFS_STORAGE_API_KEY="..." -IPFS_NODE_ADDRESS="http://ipfs-node:5002" +IPFS_NODE_ADDRESS="http://ipfs-node:5001" #BATCH_NFT_MINT_SIZE=10 # FE/DEMO diff --git a/configs/.env.develop.guardian.system b/configs/.env.develop.guardian.system index 7f8513889..7e6e785a9 100644 --- a/configs/.env.develop.guardian.system +++ b/configs/.env.develop.guardian.system @@ -65,7 +65,7 @@ IPFS_TIMEOUT="720" IPFS_PROVIDER="web3storage" # 'web3storage' or 'local' IPFS_PUBLIC_GATEWAY='https://ipfs.io/ipfs/${cid}' IPFS_STORAGE_API_KEY="..." -IPFS_NODE_ADDRESS="http://ipfs-node:5002" +IPFS_NODE_ADDRESS="http://ipfs-node:5001" #BATCH_NFT_MINT_SIZE=10 # FE/DEMO diff --git a/configs/.env.template.guardian.system b/configs/.env.template.guardian.system index fc84c4b22..164741332 100644 --- a/configs/.env.template.guardian.system +++ b/configs/.env.template.guardian.system @@ -82,7 +82,7 @@ IPFS_TIMEOUT="720" IPFS_PROVIDER="web3storage" # 'web3storage' or 'local' IPFS_PUBLIC_GATEWAY='https://ipfs.io/ipfs/${cid}' IPFS_STORAGE_API_KEY="..." -IPFS_NODE_ADDRESS="http://ipfs-node:5002" +IPFS_NODE_ADDRESS="http://ipfs-node:5001" #BATCH_NFT_MINT_SIZE=10 # FE/DEMO diff --git a/docker-compose-DEV-ONLYSERVERS.yml b/docker-compose-DEV-ONLYSERVERS.yml index d7196e32a..6670707fe 100644 --- a/docker-compose-DEV-ONLYSERVERS.yml +++ b/docker-compose-DEV-ONLYSERVERS.yml @@ -20,18 +20,15 @@ services: depends_on: - mongo - # ipfs-node: - # image: ipfs/kubo:v0.18.1 - # ports: - # - "5001:5001" - # - "5002:5002" - # - "4001:4001" - # - "4002:4002" - # - "8080:8080" - # - "8081:8081" - # volumes: - # - ./runtime-data/ipfs/staging:/export:rw - # - ./runtime-data/ipfs/data:/data/ipfs:rw +# ipfs-node: +# image: ipfs/kubo:v0.22.0 +# ports: +# - "5001:5001" +# - "4001:4001" +# - "8080:8080" +# volumes: +# - ./runtime-data/ipfs/staging:/export:rw +# - ./runtime-data/ipfs/data:/data/ipfs:rw message-broker: diff --git a/docker-compose-aws.yml b/docker-compose-aws.yml index e1427b63b..071243f75 100644 --- a/docker-compose-aws.yml +++ b/docker-compose-aws.yml @@ -19,14 +19,14 @@ services: - mongo ipfs-node: - image: ipfs/kubo:v0.17.0 + image: ipfs/kubo:v0.22.0 ports: - "5001:5001" - - "5002:5002" - "4001:4001" - - "4002:4002" - "8080:8080" - - "8081:8081" + volumes: + - ./runtime-data/ipfs/staging:/export:rw + - ./runtime-data/ipfs/data:/data/ipfs:rw message-broker: image: nats:2.9.8 diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml index 7838a5620..e62411cd8 100644 --- a/docker-compose-dev.yml +++ b/docker-compose-dev.yml @@ -9,14 +9,11 @@ services: ports: - 27017:27017 ipfs-node: - image: ipfs/kubo:v0.18.1 + image: ipfs/kubo:v0.22.0 ports: - "5001:5001" - - "5002:5002" - "4001:4001" - - "4002:4002" - "8080:8080" - - "8081:8081" volumes: - ./runtime-data/ipfs/staging:/export:rw - ./runtime-data/ipfs/data:/data/ipfs:rw diff --git a/docker-compose.yml b/docker-compose.yml index ccc9e387b..23aa40fc0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,14 +19,14 @@ services: - mongo ipfs-node: - image: ipfs/kubo:v0.18.1 + image: ipfs/kubo:v0.22.0 ports: - "5001:5001" - - "5002:5002" - "4001:4001" - - "4002:4002" - "8080:8080" - - "8081:8081" + volumes: + - ./runtime-data/ipfs/staging:/export:rw + - ./runtime-data/ipfs/data:/data/ipfs:rw message-broker: image: nats:2.9.8 diff --git a/docker-composeRIL.yml b/docker-composeRIL.yml index 8cbc3694c..0fbe8c4d8 100644 --- a/docker-composeRIL.yml +++ b/docker-composeRIL.yml @@ -21,14 +21,11 @@ services: - mongo ipfs-node: - image: ipfs/kubo:v0.18.1 + image: ipfs/kubo:v0.22.0 ports: - "5001:5001" - - "5002:5002" - "4001:4001" - - "4002:4002" - "8080:8080" - - "8081:8081" volumes: - ./runtime-data/ipfs/staging:/export:rw - ./runtime-data/ipfs/data:/data/ipfs:rw diff --git a/docker-compose_SSV.yml b/docker-compose_SSV.yml index b36c8555f..322ea271e 100644 --- a/docker-compose_SSV.yml +++ b/docker-compose_SSV.yml @@ -19,14 +19,11 @@ services: - mongo ipfs-node: - image: ipfs/kubo:v0.18.1 + image: ipfs/kubo:v0.22.0 ports: - "5001:5001" - - "5002:5002" - "4001:4001" - - "4002:4002" - "8080:8080" - - "8081:8081" volumes: - ./runtime-data/ipfs/staging:/export:rw - ./runtime-data/ipfs/data:/data/ipfs:rw diff --git a/docs/.gitbook/assets/0 (2).jpeg b/docs/.gitbook/assets/0 (2).jpeg new file mode 100644 index 000000000..bd6989c27 Binary files /dev/null and b/docs/.gitbook/assets/0 (2).jpeg differ diff --git a/docs/.gitbook/assets/1 (12).png b/docs/.gitbook/assets/1 (12).png new file mode 100644 index 000000000..0762e6c67 Binary files /dev/null and b/docs/.gitbook/assets/1 (12).png differ diff --git a/docs/.gitbook/assets/10 (10).png b/docs/.gitbook/assets/10 (10).png new file mode 100644 index 000000000..b4db1d6c5 Binary files /dev/null and b/docs/.gitbook/assets/10 (10).png differ diff --git a/docs/.gitbook/assets/11 (10).png b/docs/.gitbook/assets/11 (10).png new file mode 100644 index 000000000..d46680ed9 Binary files /dev/null and b/docs/.gitbook/assets/11 (10).png differ diff --git a/docs/.gitbook/assets/12 (9).png b/docs/.gitbook/assets/12 (9).png new file mode 100644 index 000000000..d1ff503ed Binary files /dev/null and b/docs/.gitbook/assets/12 (9).png differ diff --git a/docs/.gitbook/assets/13 (8).png b/docs/.gitbook/assets/13 (8).png new file mode 100644 index 000000000..237229d67 Binary files /dev/null and b/docs/.gitbook/assets/13 (8).png differ diff --git a/docs/.gitbook/assets/14 (9).png b/docs/.gitbook/assets/14 (9).png new file mode 100644 index 000000000..a0af8ad45 Binary files /dev/null and b/docs/.gitbook/assets/14 (9).png differ diff --git a/docs/.gitbook/assets/15 (9).png b/docs/.gitbook/assets/15 (9).png new file mode 100644 index 000000000..160852225 Binary files /dev/null and b/docs/.gitbook/assets/15 (9).png differ diff --git a/docs/.gitbook/assets/16 (9).png b/docs/.gitbook/assets/16 (9).png new file mode 100644 index 000000000..3779c4b69 Binary files /dev/null and b/docs/.gitbook/assets/16 (9).png differ diff --git a/docs/.gitbook/assets/17 (8).png b/docs/.gitbook/assets/17 (8).png new file mode 100644 index 000000000..acfb118a0 Binary files /dev/null and b/docs/.gitbook/assets/17 (8).png differ diff --git a/docs/.gitbook/assets/18 (9).png b/docs/.gitbook/assets/18 (9).png new file mode 100644 index 000000000..859942e87 Binary files /dev/null and b/docs/.gitbook/assets/18 (9).png differ diff --git a/docs/.gitbook/assets/19 (9).png b/docs/.gitbook/assets/19 (9).png new file mode 100644 index 000000000..cb53bbec1 Binary files /dev/null and b/docs/.gitbook/assets/19 (9).png differ diff --git a/docs/.gitbook/assets/2 (11).png b/docs/.gitbook/assets/2 (11).png new file mode 100644 index 000000000..d6357dacb Binary files /dev/null and b/docs/.gitbook/assets/2 (11).png differ diff --git a/docs/.gitbook/assets/20 (5).png b/docs/.gitbook/assets/20 (5).png new file mode 100644 index 000000000..003e96553 Binary files /dev/null and b/docs/.gitbook/assets/20 (5).png differ diff --git a/docs/.gitbook/assets/3 (11).png b/docs/.gitbook/assets/3 (11).png new file mode 100644 index 000000000..f677ae8c3 Binary files /dev/null and b/docs/.gitbook/assets/3 (11).png differ diff --git a/docs/.gitbook/assets/4 (10).png b/docs/.gitbook/assets/4 (10).png new file mode 100644 index 000000000..f58f70d2d Binary files /dev/null and b/docs/.gitbook/assets/4 (10).png differ diff --git a/docs/.gitbook/assets/5 (10).png b/docs/.gitbook/assets/5 (10).png new file mode 100644 index 000000000..d8f5f75e5 Binary files /dev/null and b/docs/.gitbook/assets/5 (10).png differ diff --git a/docs/.gitbook/assets/6 (9).png b/docs/.gitbook/assets/6 (9).png new file mode 100644 index 000000000..b5bbc46ab Binary files /dev/null and b/docs/.gitbook/assets/6 (9).png differ diff --git a/docs/.gitbook/assets/7 (9).png b/docs/.gitbook/assets/7 (9).png new file mode 100644 index 000000000..926433c6a Binary files /dev/null and b/docs/.gitbook/assets/7 (9).png differ diff --git a/docs/.gitbook/assets/8 (9).png b/docs/.gitbook/assets/8 (9).png new file mode 100644 index 000000000..463393f8e Binary files /dev/null and b/docs/.gitbook/assets/8 (9).png differ diff --git a/docs/.gitbook/assets/9 (4).png b/docs/.gitbook/assets/9 (4).png index 849f74e40..5aa57a1d4 100644 Binary files a/docs/.gitbook/assets/9 (4).png and b/docs/.gitbook/assets/9 (4).png differ diff --git a/docs/.gitbook/assets/image (293).png b/docs/.gitbook/assets/image (293).png new file mode 100644 index 000000000..d0c2f2acd Binary files /dev/null and b/docs/.gitbook/assets/image (293).png differ diff --git a/docs/.gitbook/assets/image (294).png b/docs/.gitbook/assets/image (294).png new file mode 100644 index 000000000..cdb762a8b Binary files /dev/null and b/docs/.gitbook/assets/image (294).png differ diff --git a/docs/.gitbook/assets/image (295).png b/docs/.gitbook/assets/image (295).png new file mode 100644 index 000000000..5c97f0172 Binary files /dev/null and b/docs/.gitbook/assets/image (295).png differ diff --git a/docs/.gitbook/assets/image (296).png b/docs/.gitbook/assets/image (296).png new file mode 100644 index 000000000..eba45a256 Binary files /dev/null and b/docs/.gitbook/assets/image (296).png differ diff --git a/docs/.gitbook/assets/image (297).png b/docs/.gitbook/assets/image (297).png new file mode 100644 index 000000000..ac095c92e Binary files /dev/null and b/docs/.gitbook/assets/image (297).png differ diff --git a/docs/.gitbook/assets/image (298).png b/docs/.gitbook/assets/image (298).png new file mode 100644 index 000000000..9c8d09fe4 Binary files /dev/null and b/docs/.gitbook/assets/image (298).png differ diff --git a/docs/.gitbook/assets/image (299).png b/docs/.gitbook/assets/image (299).png new file mode 100644 index 000000000..06abe75f3 Binary files /dev/null and b/docs/.gitbook/assets/image (299).png differ diff --git a/docs/.gitbook/assets/image (300).png b/docs/.gitbook/assets/image (300).png new file mode 100644 index 000000000..9fb23a793 Binary files /dev/null and b/docs/.gitbook/assets/image (300).png differ diff --git a/docs/.gitbook/assets/image (301).png b/docs/.gitbook/assets/image (301).png new file mode 100644 index 000000000..b4a603a8e Binary files /dev/null and b/docs/.gitbook/assets/image (301).png differ diff --git a/docs/.gitbook/assets/image (302).png b/docs/.gitbook/assets/image (302).png new file mode 100644 index 000000000..1b5a76c78 Binary files /dev/null and b/docs/.gitbook/assets/image (302).png differ diff --git a/docs/.gitbook/assets/image (303).png b/docs/.gitbook/assets/image (303).png new file mode 100644 index 000000000..954577181 Binary files /dev/null and b/docs/.gitbook/assets/image (303).png differ diff --git a/docs/.gitbook/assets/image (304).png b/docs/.gitbook/assets/image (304).png new file mode 100644 index 000000000..0db5236e9 Binary files /dev/null and b/docs/.gitbook/assets/image (304).png differ diff --git a/docs/.gitbook/assets/image (305).png b/docs/.gitbook/assets/image (305).png new file mode 100644 index 000000000..c7ed0bd2c Binary files /dev/null and b/docs/.gitbook/assets/image (305).png differ diff --git a/docs/.gitbook/assets/image (306).png b/docs/.gitbook/assets/image (306).png new file mode 100644 index 000000000..473dce4ac Binary files /dev/null and b/docs/.gitbook/assets/image (306).png differ diff --git a/docs/.gitbook/assets/image (307).png b/docs/.gitbook/assets/image (307).png new file mode 100644 index 000000000..c1f3ca5ac Binary files /dev/null and b/docs/.gitbook/assets/image (307).png differ diff --git a/docs/.gitbook/assets/image (308).png b/docs/.gitbook/assets/image (308).png new file mode 100644 index 000000000..227fd3c1b Binary files /dev/null and b/docs/.gitbook/assets/image (308).png differ diff --git a/docs/.gitbook/assets/image (309).png b/docs/.gitbook/assets/image (309).png new file mode 100644 index 000000000..65571432a Binary files /dev/null and b/docs/.gitbook/assets/image (309).png differ diff --git a/docs/.gitbook/assets/image (310).png b/docs/.gitbook/assets/image (310).png new file mode 100644 index 000000000..ad7c36e49 Binary files /dev/null and b/docs/.gitbook/assets/image (310).png differ diff --git a/docs/.gitbook/assets/image (311).png b/docs/.gitbook/assets/image (311).png new file mode 100644 index 000000000..d71d69ea5 Binary files /dev/null and b/docs/.gitbook/assets/image (311).png differ diff --git a/docs/.gitbook/assets/image (312).png b/docs/.gitbook/assets/image (312).png new file mode 100644 index 000000000..6e5a52782 Binary files /dev/null and b/docs/.gitbook/assets/image (312).png differ diff --git a/docs/.gitbook/assets/image (313).png b/docs/.gitbook/assets/image (313).png new file mode 100644 index 000000000..04ed3f100 Binary files /dev/null and b/docs/.gitbook/assets/image (313).png differ diff --git a/docs/.gitbook/assets/image (314).png b/docs/.gitbook/assets/image (314).png new file mode 100644 index 000000000..e567a08cc Binary files /dev/null and b/docs/.gitbook/assets/image (314).png differ diff --git a/docs/.gitbook/assets/image (315).png b/docs/.gitbook/assets/image (315).png new file mode 100644 index 000000000..3a0e93ed7 Binary files /dev/null and b/docs/.gitbook/assets/image (315).png differ diff --git a/docs/.gitbook/assets/image (316).png b/docs/.gitbook/assets/image (316).png new file mode 100644 index 000000000..0464f7f14 Binary files /dev/null and b/docs/.gitbook/assets/image (316).png differ diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 459e5a4b5..8348c99da 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -424,11 +424,13 @@ * [📖 Introduction to Remote Work GHG](guardian/demo-guide/carbon-emissions/remote-work-ghg-policy/introduction-to-remote-work-ghg.md) * [💻 GHG Policy User Journey UI Demo Guide](guardian/demo-guide/carbon-emissions/remote-work-ghg-policy/ghg-policy-user-journey-ui-demo-guide.md) * [💻 Remote GHG Policy Demo Guide](guardian/demo-guide/carbon-emissions/remote-work-ghg-policy/remote-ghg-policy-demo-guide.md) + * [AMS III.D Readme](guardian/demo-guide/carbon-emissions/remote-work-ghg-policy/ams-iii.d-readme.md) * [🏢 Carbon Emissions Measurement - GHG Corporate Standard Policy Guide](guardian/demo-guide/carbon-emissions/carbon-emissions-measurement-ghg-corporate-standard-policy-guide.md) * [🏭 atma GHG Scope II Carbon Emission Policy](guardian/demo-guide/carbon-emissions/atma-ghg-scope-ii-carbon-emission-policy.md) * [🏭 Carbon Development Mechanism (CDM) AMS-III.AR Policy](guardian/demo-guide/carbon-emissions/carbon-development-mechanism-cdm-ams-iii.ar-policy.md) * [🏭 GHGP Corporate Standard](guardian/demo-guide/carbon-emissions/ghgp-corporate-standard.md) * [🏨 CDM AMS II.G](guardian/demo-guide/carbon-emissions/cdm-ams-ii.g.md) + * [🏭 CDM AMS III.D](guardian/demo-guide/carbon-emissions/cdm-ams-iii.d.md) * [❓ FAQs](faqs/faqs.md) * [Community Standards](guardian/community-standards/README.md) * [Guardian Policy Standards (GPS)](guardian/community-standards/guardian-policy-standards-gps.md) diff --git a/docs/environments/Ecosystem-Environment.md b/docs/environments/Ecosystem-Environment.md index 19691e732..6e8f33b2b 100644 --- a/docs/environments/Ecosystem-Environment.md +++ b/docs/environments/Ecosystem-Environment.md @@ -62,7 +62,7 @@ IPFS_PROVIDER="web3storage" # 'web3storage' or 'local' #Single quote IPFS_PUBLIC_GATEWAY IPFS_PUBLIC_GATEWAY='https://ipfs.io/ipfs/${cid}' IPFS_STORAGE_API_KEY="..." -IPFS_NODE_ADDRESS="http://ipfs-node:5002" +IPFS_NODE_ADDRESS="http://ipfs-node:5001" ``` ## 1) Docker Compose Configuration @@ -254,4 +254,4 @@ Follow the steps: $ docker compose up -d ``` -In this configuration using the default OVERRIDING=false in the .env.\.guardian.system grant that the environments that are in each ./\/configs remain unloaded. \ No newline at end of file +In this configuration using the default OVERRIDING=false in the .env.\.guardian.system grant that the environments that are in each ./\/configs remain unloaded. diff --git a/docs/guardian-in-production/independent-packaged-deployment.md b/docs/guardian-in-production/independent-packaged-deployment.md index 929cb1cef..a43faaf5a 100644 --- a/docs/guardian-in-production/independent-packaged-deployment.md +++ b/docs/guardian-in-production/independent-packaged-deployment.md @@ -27,7 +27,7 @@ Furthermore, the services are grouped into external and internal ones. External * mongo:6.0.3 * mongo-express:1.0.0-alpha.4 * mongo -* ipfs/kubo:v0.18.1 +* ipfs/kubo:v0.22.0 * message-broker:2.9.8 * vault:1.12.2 diff --git a/docs/guardian/community-standards/guardian-policy-standards-gps.md b/docs/guardian/community-standards/guardian-policy-standards-gps.md index eaaf8c904..05488e54d 100644 --- a/docs/guardian/community-standards/guardian-policy-standards-gps.md +++ b/docs/guardian/community-standards/guardian-policy-standards-gps.md @@ -75,15 +75,3 @@ The level and type of support available for each policy should be clearly commun ## Conclusion The Guardian Policy Standards serve as a critical conduit ensuring effective communication and clear delineation of responsibilities between policy proposers, policy owners, and policy users. These standards aim to promote transparency, predictability, and accountability within the Guardian ecosystem. By adhering to these standards, the Guardian community can ensure the development and upkeep of high-quality, science-based policies, thereby fostering an ecosystem where sustainability assets are accurately represented, effectively communicated, and efficiently tokenized. - -\ -\ -\ - - -\ -\ -\ - - -\ diff --git a/docs/guardian/community-standards/guardian-system-standards-gss.md b/docs/guardian/community-standards/guardian-system-standards-gss.md index 26e9abe1a..943311856 100644 --- a/docs/guardian/community-standards/guardian-system-standards-gss.md +++ b/docs/guardian/community-standards/guardian-system-standards-gss.md @@ -115,5 +115,3 @@ The GSS are designed to foster an open, collaborative environment by providing c Effective communication forms a cornerstone of these standards. Regular updates through the Guardian community's established communication channels ensure that all stakeholders stay informed about active GSS proposals. This is particularly important for proposals in the development phase. Clear, timely communication with all stakeholders, especially the codebase Maintainer, is crucial to the successful implementation of new features or changes. This collaborative approach ensures alignment with ongoing work in the application and helps avoid potential conflicts or roadblocks. By adhering to these standards, we can ensure the Guardian project evolves consistently, sustainably, and beneficially for all stakeholders. These guidelines serve as a roadmap for current and future developments, driving the Guardian project towards its ambitious goal of providing a robust platform for managing and optimizing ESG assets. - -\ diff --git a/docs/guardian/community-standards/proposal-for-defining-standards.md b/docs/guardian/community-standards/proposal-for-defining-standards.md index 1ac897bd4..33643b4ac 100644 --- a/docs/guardian/community-standards/proposal-for-defining-standards.md +++ b/docs/guardian/community-standards/proposal-for-defining-standards.md @@ -73,13 +73,3 @@ This document serves as an introduction to the proposed standards for the Guardi The structure and processes for drafting, submitting, and approving GSS and GPS proposals require a level of detail beyond the scope of this introductory document. Therefore, these mechanisms will be elaborated upon comprehensively in dedicated standards documents for each category. These subsequent documents will serve as a detailed guide for contributors seeking to propose new features or policy changes. The aim is to ensure clarity, efficiency, and consensus in the decision-making process, driving the continual improvement and evolution of the Guardian project. By adhering to these standards, we aim to facilitate productive collaboration and innovative development within the Guardian community. We invite all community members to engage in this dynamic process, contributing to the advancement and success of the Guardian ecosystem. - -\ -\ - - -\ -\ -\ -\ -\ diff --git a/docs/guardian/demo-guide/carbon-emissions/cdm-ams-iii.d.md b/docs/guardian/demo-guide/carbon-emissions/cdm-ams-iii.d.md new file mode 100644 index 000000000..82cd82798 --- /dev/null +++ b/docs/guardian/demo-guide/carbon-emissions/cdm-ams-iii.d.md @@ -0,0 +1,179 @@ +# 🏭 CDM AMS III.D + +## Table of Contents + +[Introduction](cdm-ams-iii.d.md#introduction) + +[Need and Use for the AMS. III. D policy](cdm-ams-iii.d.md#need-and-use-for-the-ams-iii.d-policy) + +[Demo Video](cdm-ams-iii.d.md#demo-video) + +[Policy Workflow](cdm-ams-iii.d.md#policy-workflow) + +[Policy Guide](cdm-ams-iii.d.md#policy-guide) + +[Available Roles](cdm-ams-iii.d.md#available-roles) + +[Important Documents and Schemas](cdm-ams-iii.d.md#important-documents-and-schemas) + +[Token](cdm-ams-iii.d.md#token-carbon-emission-reduction) + +[Step By Step](cdm-ams-iii.d.md#step-by-step) + +## Introduction + +In the pursuit of sustainable practices, AMS-III.D can be used as a methodology to reshape anaerobic manure management practices. The pressing global concern surrounding methane emissions and the environmental impact of livestock farming has prompted the development of this innovative strategy under the Clean Development Mechanism (CDM). By focusing on the modification or replacement of existing anaerobic systems and optimizing the recovery of methane, AMS-III.D sets a course to address greenhouse gas (GHG) emissions and encourage efficient energy utilization. + +The urgency to mitigate methane's potent contribution to climate change highlights the importance of using a methodology like AMS-III.D. This methodology centers on anaerobic manure management systems in livestock farms by introducing ways to quantify the emissions and reductions from advanced technologies used for capturing, utilizing, and properly disposing of methane. When these technologies are not utilized, methane emissions from manure management can significantly contribute to the greenhouse effect. AMS-III.D considers the use of captured methane for energy or its responsible elimination through processes like flaring or combustion. This approach not only prevents methane from entering the atmosphere but also unlocks the potential to harness methane as a valuable energy source. + +AMS-III.D's framework is enriched by the incorporation of several essential methodological tools, each designed to ensure accuracy and consistency in emission calculations. Referencing tools such as "Tool to calculate project or leakage CO2 emissions from fossil fuel combustion," "Tool to calculate baseline, project and/or leakage emissions from electricity consumption," "Tool to determine project emissions from flaring gases containing methane," and "Project and leakage emissions from anaerobic digesters," this methodology encapsulates the schemas and parameters necessary for precise assessments. These tools play a pivotal role in calculating baseline emissions, project emissions, leakage, and emission reductions, reinforcing the integrity of AMS-III.D as a comprehensive approach to sustainable manure management practices. + +Significantly, AMS-III.D recognizes the environmental risks associated with conventional practices in instances where anaerobic digesters are not employed. In such cases, untreated manure can lead to substantial methane emissions, with far-reaching implications for the climate and local ecosystems. Methane, being a potent greenhouse gas, possesses a higher heat-trapping capacity than carbon dioxide over shorter periods. By adopting the methodologies outlined in AMS-III.D, which includes adhering to specific conditions and monitoring parameters, the release of methane into the environment can be mitigated. This methodology not only ensures the reduction of methane emissions but also demonstrates its commitment to sustainable development, merging environmental stewardship with innovative agricultural practices. + +## Need and Use for the AMS-III.D Policy + +Globally, the emission of methane – a potent greenhouse gas – from conventional manure management remains an urgent concern. Methane, often underestimated but with a significant impact on climate change, holds the capacity to trap heat in the atmosphere approximately 25 times more effectively than carbon dioxide over a century. This highlights the immediate need for methodologies like AMS-III.D to mitigate the profound influence of methane emissions on global warming. + +Manure management practices, particularly within livestock farming, play a substantial role in methane emissions. When manure is improperly treated or left untreated, it undergoes anaerobic decomposition, releasing methane gas as a natural byproduct. This significantly contributes to the accumulation of atmospheric methane. Additionally, specific manure management systems, such as lagoons, provide an environment conducive to methane production due to the absence of oxygen during decomposition. These emissions amplify the environmental impact of the agriculture sector and contribute to the broader challenge of anthropogenic greenhouse gas emissions. + +In the context of modern emission reduction projects, the necessity for transparency and credibility is undeniable. The Guardian, a platform built on the Hedera Network, emerges as a solution to challenges like double counting and fraud. Hedera's distributed ledger technology ensures immutable and transparent record-keeping, thereby enhancing the accountability and integrity of emission reduction initiatives. As the Guardian platform streamlines processes, enhances accuracy, and fosters trust within clean manure management projects, AMS-III.D not only bolsters its environmental impact but also highlights the role of cutting-edge technology in propelling a greener, more sustainable future. + +## Demo Video + +\[Link] + +Policy Workflow \ + + + +
+ +## Policy Guide + +This policy is published to Hedera network and can either be imported via Github (.policy file) or IPFS timestamp. + +Latest Version - 1693223777.317635003 + +## Available Roles + +**Project Proponent** - The project proponent is responsible for executing the emission reduction project. The project proponent must adhere to the requirements outlined by the CDM and provide evidence of the emission reductions achieved. Upon successful verification, the project proponent receives certified emission reduction (CER) tokens as an incentive for their emission reductions. + +**Verification and Validation Body (VVB)** - The VVB plays a critical role in independently verifying and validating the project data submitted by the project proponent. They thoroughly assess the project's emission reduction potential, methodologies, and adherence to the policy guidelines. Based on their evaluation, the VVB either approves or rejects the project for registration. + +**Designated National Authority (DNA)** - The DNA is a governmental body representing the country where the emission reduction project is being implemented. They review and approve the project's eligibility in accordance with national policies and regulations. The DNA's endorsement is essential for the project to proceed with the AMS-III.D policy. + +**Registry (UNFCCC)** - The United Nations Framework Convention on Climate Change (UNFCCC) serves as the registry for the CDM. They oversee the multiple workflow steps involved in the project's approval, including the verification and validation process by the VVB and the endorsement by the DNA. The UNFCCC's approval is necessary for the project's successful registration and issuance of CER tokens + +## Important Documents & Schemas + +1\. Methodological Tool 03 - Tool to calculate project or leakage CO2 emissions from fossil fuel combustion. + +2\. Methodological Tool 05 - Baseline, project and/or leakage emissions from electricity consumption and monitoring of electricity generation. + +3\. Methodological Tool 06 - Tool to determine project emissions from flaring gases containing methane. + +4\. Methodological Tool 14 - Project and leakage emissions from anaerobic digesters + +5\. Project Description - Project Proponent information, standard project information, methodology information like baseline emissions, project emissions, etc. + +6\. Emissions Reduction – Schema included within the project information form; this is filled out by the project proponent to calculate annual emission reductions. + +7\. Monitoring Report – The monitoring report is to be filled out based on the monitoring plan mentioned within the methodology. + +## Token (Carbon Emission Reduction) + +Certified Emission Reduction (CER) credits, each equivalent to one tonne of CO2. + +## Step by Step + +1\. The policy can be imported using IPFS timestamp 1693223777.317635003 + +
+ +2\. Select “Import”. + +
+ +3\. Place status in “Dry Run” and select “Go”. + +
+ +4\. By selecting the edit button in the operations tab, you can access the policy configurator and view the workflow blocks. + +
+ +5\. Going back to the policy workflow, add users by selecting the “create user” button. Then select the dropdown user menu and select “Virtual User 1”. + +
+ +6\. Virtual User 1 will be assigned to the Project\_Proponent + +
+ +7\. Virtual User 2 will be assigned to the VVB + +
+ +8\. Add the VVBs name + +
+ +9\. The final role that will be assigned to Virtual User 3 is the Designated National Authority. + +
+ +10\. Go to the Administrator’s (Standard Registry) profile. The Standard Registry can now approve the VVB. + +
+ +11\. Click on the Users dropdown menu and select Virtual User 1 (Project Proponent) and select the “New Project” button. + +
+ +12\. Once the form is completed, go to Virtual User 3’s (Designated National Authority) profile. The Designated National Authority can now view the project information document by selecting “view document” and then they can select validate or reject. + +
+ +13\. Return to the Administrator’s (Standard Registry) profile. The Standard Registry now has access to the project information document by clicking “view document” once they have reviewed it they can select “Add” to add the project to the project pipeline. + +
+ +14\. Navigate back to Virtual User 1’s (Project Proponent) profile and assign the VVB. + +
+ +15\. Go to the VVB profile and select the “Project” tab. The VVB can now see all the information submitted by the Project Proponent. Once the document has been reviewed the VVB will select Approve or Reject. + +
+ +16\. Navigate back to the Administrator. For this workflow step the Standard Registry reviews the document and adds the project to the project pipeline. Select Add. + +
+ +17\. Navigate back to Virtual User 1’s (Project Proponent) profile and select “Add Report”. + +
+ +18\. Go to the Virtual User 2’s (VVB) profile. The VVB has access to the monitoring report form by selecting “View Document”. Then the VVB can select Verify or Reject. + +
+ +19\. Navigate back to the Administrator’s profile and select the “Mint” button. + +
+ +20\. The status should now say “Minted”. + +
+ +21\. By selecting the “Token History” tab you can see the number of tokens minted and then you can select “View TrustChain” + +
+ +22\. The Verified Presentation should now be open. You can view information like the recipient's name, token amount, mint date, verified signature, etc. This example resulted in 0 tokens minted due to the demo values used. + +
+ +23\. By scrolling to the bottom of the page you can view the TrustChain. + +
diff --git a/docs/guardian/demo-guide/carbon-emissions/remote-work-ghg-policy/ams-iii.d-readme.md b/docs/guardian/demo-guide/carbon-emissions/remote-work-ghg-policy/ams-iii.d-readme.md new file mode 100644 index 000000000..f32e4ccb0 --- /dev/null +++ b/docs/guardian/demo-guide/carbon-emissions/remote-work-ghg-policy/ams-iii.d-readme.md @@ -0,0 +1,191 @@ +# AMS III.D Readme + +AMS-III.D Readme + +Table of Contents + +Introduction 1 + +Need and Use for the AMS-II.G Policy 2 + +Demo Video 3 + +Policy Workflow 3 + +Policy Guide 3 + +**Available Roles** 3 + +Important Documents & Schemas 4 + +Token (Carbon Emission Reduction) 4 + +Step by Step 4 + +### Introduction + +In the pursuit of sustainable practices, AMS-III.D can be used as a methodology to reshape anaerobic manure management practices. The pressing global concern surrounding methane emissions and the environmental impact of livestock farming has prompted the development of this innovative strategy under the Clean Development Mechanism (CDM). By focusing on the modification or replacement of existing anaerobic systems and optimizing the recovery of methane, AMS-III.D sets a course to address greenhouse gas (GHG) emissions and encourage efficient energy utilization. + +The urgency to mitigate methane's potent contribution to climate change highlights the importance of using a methodology like AMS-III.D. This methodology centers on anaerobic manure management systems in livestock farms by introducing ways to quantify the emissions and reductions from advanced technologies used for capturing, utilizing, and properly disposing of methane. When these technologies are not utilized, methane emissions from manure management can significantly contribute to the greenhouse effect. AMS-III.D considers the use of captured methane for energy or its responsible elimination through processes like flaring or combustion. This approach not only prevents methane from entering the atmosphere but also unlocks the potential to harness methane as a valuable energy source. + +AMS-III.D's framework is enriched by the incorporation of several essential methodological tools, each designed to ensure accuracy and consistency in emission calculations. Referencing tools such as "Tool to calculate project or leakage CO2 emissions from fossil fuel combustion," "Tool to calculate baseline, project and/or leakage emissions from electricity consumption," "Tool to determine project emissions from flaring gases containing methane," and "Project and leakage emissions from anaerobic digesters," this methodology encapsulates the schemas and parameters necessary for precise assessments. These tools play a pivotal role in calculating baseline emissions, project emissions, leakage, and emission reductions, reinforcing the integrity of AMS-III.D as a comprehensive approach to sustainable manure management practices. + +Significantly, AMS-III.D recognizes the environmental risks associated with conventional practices in instances where anaerobic digesters are not employed. In such cases, untreated manure can lead to substantial methane emissions, with far-reaching implications for the climate and local ecosystems. Methane, being a potent greenhouse gas, possesses a higher heat-trapping capacity than carbon dioxide over shorter periods. By adopting the methodologies outlined in AMS-III.D, which includes adhering to specific conditions and monitoring parameters, the release of methane into the environment can be mitigated. This methodology not only ensures the reduction of methane emissions but also demonstrates its commitment to sustainable development, merging environmental stewardship with innovative agricultural practices. + +### Need and Use for the AMS-III.D Policy + +\ +Globally, the emission of methane – a potent greenhouse gas – from conventional manure management remains an urgent concern. Methane, often underestimated but with a significant impact on climate change, holds the capacity to trap heat in the atmosphere approximately 25 times more effectively than carbon dioxide over a century. This highlights the immediate need for methodologies like AMS-III.D to mitigate the profound influence of methane emissions on global warming. + +Manure management practices, particularly within livestock farming, play a substantial role in methane emissions. When manure is improperly treated or left untreated, it undergoes anaerobic decomposition, releasing methane gas as a natural byproduct. This significantly contributes to the accumulation of atmospheric methane. Additionally, specific manure management systems, such as lagoons, provide an environment conducive to methane production due to the absence of oxygen during decomposition. These emissions amplify the environmental impact of the agriculture sector and contribute to the broader challenge of anthropogenic greenhouse gas emissions. + +In the context of modern emission reduction projects, the necessity for transparency and credibility is undeniable. The Guardian, a platform built on the Hedera Network, emerges as a solution to challenges like double counting and fraud. Hedera's distributed ledger technology ensures immutable and transparent record-keeping, thereby enhancing the accountability and integrity of emission reduction initiatives. As the Guardian platform streamlines processes, enhances accuracy, and fosters trust within clean manure management projects, AMS-III.D not only bolsters its environmental impact but also highlights the role of cutting-edge technology in propelling a greener, more sustainable future. + +### Demo Video + +\[Link] + +### Policy Workflow + +![](<../../../../.gitbook/assets/0 (2).jpeg>)\ + + +### Policy Guide + +This policy is published to Hedera network and can either be imported via Github (.policy file) or IPFS timestamp. + +Latest Version - 1693223777.317635003 + +### **Available Roles** + +Project Proponent - The project proponent is responsible for executing the emission reduction project. The project proponent must adhere to the requirements outlined by the CDM and provide evidence of the emission reductions achieved. Upon successful verification, the project proponent receives certified emission reduction (CER) tokens as an incentive for their emission reductions. + +Verification and Validation Body (VVB) - The VVB plays a critical role in independently verifying and validating the project data submitted by the project proponent. They thoroughly assess the project's emission reduction potential, methodologies, and adherence to the policy guidelines. Based on their evaluation, the VVB either approves or rejects the project for registration. + +Designated National Authority (DNA) - The DNA is a governmental body representing the country where the emission reduction project is being implemented. They review and approve the project's eligibility in accordance with national policies and regulations. The DNA's endorsement is essential for the project to proceed with the AMS-III.D policy. + +Registry (UNFCCC) - The United Nations Framework Convention on Climate Change (UNFCCC) serves as the registry for the CDM. They oversee the multiple workflow steps involved in the project's approval, including the verification and validation process by the VVB and the endorsement by the DNA. The UNFCCC's approval is necessary for the project's successful registration and issuance of CER tokens + +### Important Documents & Schemas + +1. Methodological Tool 03 - Tool to calculate project or leakage CO2 emissions from fossil fuel combustion. +2. Methodological Tool 05 - Baseline, project and/or leakage emissions from electricity consumption and monitoring of electricity generation. +3. Methodological Tool 06 - Tool to determine project emissions from flaring gases containing methane. +4. Methodological Tool 14 - Project and leakage emissions from anaerobic digesters +5. Project Description - Project Proponent information, standard project information, methodology information like baseline emissions, project emissions, etc. +6. Emissions Reduction – Schema included within the project information form; this is filled out by the project proponent to calculate annual emission reductions. +7. Monitoring Report – The monitoring report is to be filled out based on the monitoring plan mentioned within the methodology. + +### Token (Carbon Emission Reduction) + +Certified Emission Reduction (CER) credits, each equivalent to one tonne of CO2. + +### Step by Step + +1. The policy can be imported using IPFS timestamp 1693223777.317635003 + +![](<../../../../.gitbook/assets/1 (12).png>)\ + + +1. Select “Import”. + +![](<../../../../.gitbook/assets/2 (11).png>) + +1. Place status in “Dry Run” and select “Go”. + +![](<../../../../.gitbook/assets/3 (11).png>)\ + + +1. By selecting the edit button in the operations tab, you can access the policy configurator and view the workflow blocks. + +![A screenshot of a computer + +Description automatically generated](<../../../../.gitbook/assets/4 (10).png>) + +1. Going back to the policy workflow, add users by selecting the “create user” button. Then select the dropdown user menu and select “Virtual User 1”. + +![](<../../../../.gitbook/assets/5 (10).png>)\ + + +1. Virtual User 1 will be assigned to the Project\_Proponent + +![](<../../../../.gitbook/assets/6 (9).png>)\ + + +1. Virtual User 2 will be assigned to the VVB + +![](<../../../../.gitbook/assets/7 (9).png>)\ + + +1. Add the VVBs name + +![](<../../../../.gitbook/assets/8 (9).png>)\ + + +1. The final role that will be assigned to Virtual User 3 is the Designated National Authority + +![](<../../../../.gitbook/assets/9 (4).png>)\ + + +1. Go to the Administrator’s (Standard Registry) profile. The Standard Registry can now approve the VVB. + +![](<../../../../.gitbook/assets/10 (10).png>)\ + + +1. Click on the Users dropdown menu and select Virtual User 1 (Project Proponent) and select the “New Project” button. + +![](<../../../../.gitbook/assets/11 (10).png>) + +1. Once the form is completed, go to Virtual User 3’s (Designated National Authority) profile. The Designated National Authority can now view the project information document by selecting “view document” and then they can select validate or reject. + +![](<../../../../.gitbook/assets/12 (9).png>)\ + + +1. Return to the Administrator’s (Standard Registry) profile. The Standard Registry now has access to the project information document by clicking “view document” once they have reviewed it they can select “Add” to add the project to the project pipeline. + +![](<../../../../.gitbook/assets/13 (8).png>)\ + + +1. Navigate back to Virtual User 1’s (Project Proponent) profile and assign the VVB. + +![A screenshot of a computer + +Description automatically generated](<../../../../.gitbook/assets/14 (9).png>) + +1. Go to the VVB profile and select the “Project” tab. The VVB can now see all the information submitted by the Project Proponent. Once the document has been reviewed the VVB will select Approve or Reject. + +![](<../../../../.gitbook/assets/15 (9).png>)\ + + +1. Navigate back to the Administrator. For this workflow step the Standard Registry reviews the document and adds the project to the project pipeline. Select Add. + +![](<../../../../.gitbook/assets/16 (9).png>)\ + + +1. Navigate back to Virtual User 1’s (Project Proponent) profile and select “Add Report”. + +![](<../../../../.gitbook/assets/17 (8).png>)\ + + +1. Go to the Virtual User 2’s (VVB) profile. The VVB has access to the monitoring report form by selecting “View Document”. Then the VVB can select Verify or Reject. + +![](<../../../../.gitbook/assets/18 (9).png>)\ + + +1. Navigate back to the Administrator’s profile and select the “Mint” button. + +![](<../../../../.gitbook/assets/19 (9).png>)\ + + +1. The status should now say “Minted”. + +![](<../../../../.gitbook/assets/20 (5).png>)\ + + +1. By selecting the “Token History” tab you can see the number of tokens minted and then you can select “View TrustChain” + +\ + + +1. The Verified Presentation should now be open. You can view information like the recipient's name, token amount, mint date, verified signature, etc. This example resulted in 0 tokens minted due to the demo values used. +2. By scrolling to the bottom of the page you can view the TrustChain. diff --git a/docs/guardian/readme/environments/ecosystem-environments.md b/docs/guardian/readme/environments/ecosystem-environments.md index 0a2966ccc..2e42b936c 100644 --- a/docs/guardian/readme/environments/ecosystem-environments.md +++ b/docs/guardian/readme/environments/ecosystem-environments.md @@ -213,7 +213,7 @@ IPFS_PROVIDER="web3storage" # 'web3storage' or 'local' #Single quote IPFS_PUBLIC_GATEWAY IPFS_PUBLIC_GATEWAY='https://ipfs.io/ipfs/${cid}' IPFS_STORAGE_API_KEY="..." -IPFS_NODE_ADDRESS="http://ipfs-node:5002" +IPFS_NODE_ADDRESS="http://ipfs-node:5001" ``` ### 4) To use the docker-compose configuration and overriding specific service diff --git a/docs/guardian/readme/getting-started/installation/building-from-source-and-run-using-docker/README.md b/docs/guardian/readme/getting-started/installation/building-from-source-and-run-using-docker/README.md index 8d156e5cd..13e778d9b 100644 --- a/docs/guardian/readme/getting-started/installation/building-from-source-and-run-using-docker/README.md +++ b/docs/guardian/readme/getting-started/installation/building-from-source-and-run-using-docker/README.md @@ -134,7 +134,7 @@ To let the Multi-environment transition happen in a transparent way the `GUARDIA ``` -IPFS_NODE_ADDRESS="..." # Default IPFS_NODE_ADDRESS="http://localhost:5002" +IPFS_NODE_ADDRESS="..." # Default IPFS_NODE_ADDRESS="http://localhost:5001" IPFS_PUBLIC_GATEWAY='...' # Default IPFS_PUBLIC_GATEWAY='https://localhost:8080/ipfs/${cid}' IPFS_PROVIDER="local" ``` @@ -142,7 +142,7 @@ IPFS_PROVIDER="local" {% hint style="info" %} Note: -1. Default IPFS\_NODE\_ADDRESS="[http://localhost:5002](http://localhost:5002/)" +1. Default IPFS\_NODE\_ADDRESS="[http://localhost:5001](http://localhost:5001/)" 2. Default IPFS\_PUBLIC\_GATEWAY="[https://localhost:8080/ipfs/${cid}](https://localhost:8080/ipfs/$%7Bcid%7D)" {% endhint %} diff --git a/frontend/package.json b/frontend/package.json index 764ab3fb0..faf6fea47 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -68,6 +68,5 @@ "test": "ng test", "watch": "ng build --watch --configuration development --output-path ../www-data" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/frontend/src/app/modules/common/async-progress/async-progress.component.ts b/frontend/src/app/modules/common/async-progress/async-progress.component.ts index 5bed1a8cf..523645e08 100644 --- a/frontend/src/app/modules/common/async-progress/async-progress.component.ts +++ b/frontend/src/app/modules/common/async-progress/async-progress.component.ts @@ -1,20 +1,7 @@ -import { - Component, - EventEmitter, - Input, - OnDestroy, - OnInit, - Output, - SimpleChanges, -} from '@angular/core'; +import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, SimpleChanges, } from '@angular/core'; import { WebSocketService } from 'src/app/services/web-socket.service'; -import { Subscription, forkJoin } from 'rxjs'; -import { - IStatus, - StatusType, - TaskAction, - UserRole, -} from '@guardian/interfaces'; +import { forkJoin, Subscription } from 'rxjs'; +import { IStatus, StatusType, TaskAction, UserRole, } from '@guardian/interfaces'; import { ActivatedRoute, Router } from '@angular/router'; import { TasksService } from 'src/app/services/tasks.service'; import { InformService } from 'src/app/services/inform.service'; @@ -258,7 +245,21 @@ export class AsyncProgressComponent implements OnInit, OnDestroy { return; } if (this.last) { - window.location.href = this.last; + const url = new URL(this.last); + const path = [url.pathname]; + const queryParams: any = {}; + for (const [key, value] of url.searchParams.entries()) { + if (queryParams.hasOwnProperty(key)) { + if (Array.isArray(queryParams[key])) { + queryParams[key].push(value); + } else { + queryParams[key] = [queryParams[key], value]; + } + } else { + queryParams[key] = value; + } + } + this.router.navigate(path, {queryParams}); return; } switch (this.action) { diff --git a/frontend/src/app/views/admin/logs-view/logs-view.component.html b/frontend/src/app/views/admin/logs-view/logs-view.component.html index d7c57bf30..7a0874cee 100644 --- a/frontend/src/app/views/admin/logs-view/logs-view.component.html +++ b/frontend/src/app/views/admin/logs-view/logs-view.component.html @@ -23,7 +23,7 @@ - + Invalid start date Invalid end date @@ -36,14 +36,14 @@ cancel - + @@ -118,4 +118,4 @@ - \ No newline at end of file + diff --git a/frontend/src/app/views/admin/logs-view/logs-view.component.ts b/frontend/src/app/views/admin/logs-view/logs-view.component.ts index 6c82b929e..47774e17f 100644 --- a/frontend/src/app/views/admin/logs-view/logs-view.component.ts +++ b/frontend/src/app/views/admin/logs-view/logs-view.component.ts @@ -1,6 +1,6 @@ import { Component, EventEmitter, OnInit, ViewChild } from '@angular/core'; import { FormBuilder } from '@angular/forms'; -import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete'; +import { MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete'; import { MatChipInputEvent } from '@angular/material/chips'; import { MatDialog } from '@angular/material/dialog'; import { MatPaginator } from '@angular/material/paginator'; @@ -47,6 +47,7 @@ export class LogsViewComponent implements OnInit { @ViewChild(MatPaginator) paginator!: MatPaginator; @ViewChild(MatSort) sort!: MatSort; + @ViewChild(MatAutocompleteTrigger) autocomplete: MatAutocompleteTrigger; onSearch: EventEmitter = new EventEmitter(); constructor( @@ -125,17 +126,29 @@ export class LogsViewComponent implements OnInit { if (index >= 0) { attributes.splice(index, 1); } + this.onApply(); } - add(event: MatChipInputEvent): void { + add(event: MatChipInputEvent, auto: any): void { const value = (event.value || '').trim(); const attributes = this.searchForm.get('attributes')!.value; if (value) { - attributes.push(value); + const attrList = this.logService.getAttributes(value, this.searchForm?.get('attributes')?.value).subscribe(attrs => { + const firstAttr = attrs[0]; + if (firstAttr) { + attributes.push(firstAttr); + } + event.chipInput!.clear(); + this.autocomplete.closePanel(); + this.autoCompleteControl.patchValue(''); + this.onApply(); + attrList.unsubscribe(); + }) + } else { + event.chipInput!.clear(); + this.onApply(); } - - event.chipInput!.clear(); } onApply() { @@ -182,6 +195,7 @@ export class LogsViewComponent implements OnInit { attributes.push(value); } this.autoCompleteControl.patchValue(''); + this.onApply(); } clearValues() { diff --git a/frontend/src/app/views/header/header.component.html b/frontend/src/app/views/header/header.component.html index 2de7f34a5..2ff25a9fa 100644 --- a/frontend/src/app/views/header/header.component.html +++ b/frontend/src/app/views/header/header.component.html @@ -111,16 +111,26 @@ (click)="routActive('USER_POLICIES')"> Policies - + + + + @@ -368,4 +374,4 @@ - \ No newline at end of file + diff --git a/guardian-service/package.json b/guardian-service/package.json index 3715145c1..774372cab 100644 --- a/guardian-service/package.json +++ b/guardian-service/package.json @@ -12,8 +12,8 @@ }, "author": "Envision Blockchain Solutions ", "dependencies": { - "@guardian/common": "^2.16.0-prerelease", - "@guardian/interfaces": "^2.16.0-prerelease", + "@guardian/common": "^2.16.0", + "@guardian/interfaces": "^2.16.0", "@hashgraph/sdk": "2.24.2", "@mattrglobal/jsonld-signatures-bbs": "^1.1.2", "@meeco/cryppo": "^2.0.2", @@ -92,6 +92,5 @@ "test:local": "mocha tests/**/*.test.js --exit", "test:stability": "mocha tests/stability.test.js" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/guardian-service/src/api/helpers/schema-import-export-helper.ts b/guardian-service/src/api/helpers/schema-import-export-helper.ts index 7c4568c7f..fa36fca44 100644 --- a/guardian-service/src/api/helpers/schema-import-export-helper.ts +++ b/guardian-service/src/api/helpers/schema-import-export-helper.ts @@ -1,21 +1,9 @@ import { GenerateUUIDv4, ISchema, ModelHelper, Schema, SchemaCategory, SchemaEntity, SchemaHelper, SchemaStatus } from '@guardian/interfaces'; -import { - DatabaseServer, - Logger, - MessageAction, - MessageServer, - MessageType, - replaceValueRecursive, - SchemaConverterUtils, - SchemaMessage, - Tag, - TagMessage, - UrlType, - Schema as SchemaCollection -} from '@guardian/common'; +import { DatabaseServer, Logger, MessageAction, MessageServer, MessageType, replaceValueRecursive, Schema as SchemaCollection, SchemaConverterUtils, SchemaMessage, Tag, TagMessage, UrlType } from '@guardian/common'; import { emptyNotifier, INotifier } from '@helpers/notifier'; import { importTag } from './../tag.service'; import { createSchema, fixSchemaDefsOnImport, getDefs, ImportResult, onlyUnique, SchemaImportResult } from './schema-helper'; +import geoJson from '@guardian/interfaces/dist/helpers/geojson-schema/geo-json'; export class SchemaCache { /** @@ -212,7 +200,9 @@ export async function importSchemaByFiles( } const parsedSchemas = files.map(item => new Schema(item, true)); - const updatedSchemasMap = {}; + const updatedSchemasMap = { + '#GeoJSON': geoJson + }; const errors: any[] = []; for (const file of files) { const valid = fixSchemaDefsOnImport(file.iri, parsedSchemas, updatedSchemasMap); diff --git a/interfaces/package.json b/interfaces/package.json index 94210a1c5..c7136c7a0 100644 --- a/interfaces/package.json +++ b/interfaces/package.json @@ -32,6 +32,5 @@ "prepack": "npm run build", "test": "echo \"Error: no test specified\" && exit 1" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/interfaces/src/helpers/geojson-schema/geo-json.ts b/interfaces/src/helpers/geojson-schema/geo-json.ts index 5a57a947d..1e0c6f474 100644 --- a/interfaces/src/helpers/geojson-schema/geo-json.ts +++ b/interfaces/src/helpers/geojson-schema/geo-json.ts @@ -10,6 +10,7 @@ import FeatureCollection from './feature-collection'; export default { $id: '#GeoJSON', + type: 'object', title: 'GeoJSON', oneOf: [ Point, diff --git a/interfaces/src/helpers/schema-helper.ts b/interfaces/src/helpers/schema-helper.ts index 9dd875b70..eb2230e6d 100644 --- a/interfaces/src/helpers/schema-helper.ts +++ b/interfaces/src/helpers/schema-helper.ts @@ -738,42 +738,52 @@ export class SchemaHelper { } /** - * Clear fields context + * Update fields context + * @param fields * @param json + * @param parent * @private */ - private static _clearFieldsContext(json: any): any { - delete json.type; - delete json['@context']; - - const keys = Object.keys(json); - for (const key of keys) { - if (Object.prototype.toString.call(json[key]) === '[object Object]') { - json[key] = SchemaHelper._clearFieldsContext(json[key]); + private static _updateFieldsContext( + fields: SchemaField[], + json: any, + parent?: SchemaField + ): any { + if (Object.prototype.toString.call(json) === '[object Array]') { + for (const item of json) { + SchemaHelper._updateFieldsContext(fields, item, parent); } + return json; } - return json; - } - - /** - * Update fields context - * @param fields - * @param json - * @private - */ - private static _updateFieldsContext(fields: SchemaField[], json: any): any { if (Object.prototype.toString.call(json) !== '[object Object]') { return json; } + + if (parent) { + if (parent.context.type === 'GeoJSON') { + json['@context'] = parent.context.context; + } else { + json.type = parent.context.type; + json['@context'] = parent.context.context; + } + } else { + delete json.type; + delete json['@context']; + } + for (const field of fields) { const value = json[field.name]; if (field.isRef && value) { - SchemaHelper._updateFieldsContext(field.fields, value); - value.type = field.context.type; - value['@context'] = field.context.context; + SchemaHelper._updateFieldsContext(field.fields, value, field); + } else if ( + Object.prototype.toString.call(value) === '[object Object]' + ) { + delete value.type; + delete value['@context']; } } + return json; } @@ -783,7 +793,6 @@ export class SchemaHelper { * @param json */ public static updateObjectContext(schema: Schema, json: any): any { - json = SchemaHelper._clearFieldsContext(json); json = SchemaHelper._updateFieldsContext(schema.fields, json); json.type = schema.type; json['@context'] = [schema.contextURL]; diff --git a/k8s-manifests/1-config/worker-service-configmap.yaml b/k8s-manifests/1-config/worker-service-configmap.yaml index 63adeea75..8ba98b90e 100644 --- a/k8s-manifests/1-config/worker-service-configmap.yaml +++ b/k8s-manifests/1-config/worker-service-configmap.yaml @@ -23,7 +23,7 @@ data: IPFS_PROVIDER="web3storage" # 'web3storage' or 'local' IPFS_PUBLIC_GATEWAY='https://ipfs.io/ipfs/${cid}' IPFS_STORAGE_API_KEY="..." - IPFS_NODE_ADDRESS="http://localhost:5002" + IPFS_NODE_ADDRESS="http://localhost:5001" MAX_HEDERA_TIMEOUT="600" MQ_MAX_PAYLOAD="1048576" #LOG_LEVEL="2" diff --git a/k8s-manifests/2-service/ipfs-node-service.yaml b/k8s-manifests/2-service/ipfs-node-service.yaml index dd73847dc..f31701b07 100644 --- a/k8s-manifests/2-service/ipfs-node-service.yaml +++ b/k8s-manifests/2-service/ipfs-node-service.yaml @@ -12,21 +12,12 @@ spec: - name: "5001" port: 5001 targetPort: 5001 - - name: "5002" - port: 5002 - targetPort: 5002 - name: "4001" port: 4001 targetPort: 4001 - - name: "4002" - port: 4002 - targetPort: 4002 - name: "8080" port: 8080 targetPort: 8080 - - name: "8081" - port: 8081 - targetPort: 8081 selector: io.kompose.service: ipfs-node status: diff --git a/k8s-manifests/3-controller/ipfs-node-statefulset.yaml b/k8s-manifests/3-controller/ipfs-node-statefulset.yaml index 3a45e6ef5..13eba0175 100644 --- a/k8s-manifests/3-controller/ipfs-node-statefulset.yaml +++ b/k8s-manifests/3-controller/ipfs-node-statefulset.yaml @@ -24,11 +24,8 @@ spec: name: ipfs-node ports: - containerPort: 5001 - - containerPort: 5002 - containerPort: 4001 - - containerPort: 4002 - containerPort: 8080 - - containerPort: 8081 resources: {} restartPolicy: Always updateStrategy: {} diff --git a/logger-service/package.json b/logger-service/package.json index 3f1e89b22..a0fce775e 100644 --- a/logger-service/package.json +++ b/logger-service/package.json @@ -1,8 +1,8 @@ { "author": "Envision Blockchain Solutions ", "dependencies": { - "@guardian/common": "^2.16.0-prerelease", - "@guardian/interfaces": "^2.16.0-prerelease", + "@guardian/common": "^2.16.0", + "@guardian/interfaces": "^2.16.0", "@mikro-orm/core": "5.7.12", "@mikro-orm/mongodb": "5.7.12", "@nestjs/common": "^9.4.1", @@ -47,6 +47,5 @@ "start": "node dist/index.js", "watch": "nodemon src/index.ts" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/mrv-sender/package.json b/mrv-sender/package.json index d2efdae97..34cea5730 100644 --- a/mrv-sender/package.json +++ b/mrv-sender/package.json @@ -1,7 +1,7 @@ { "author": "Envision Blockchain Solutions ", "dependencies": { - "@guardian/common": "^2.16.0-prerelease", + "@guardian/common": "^2.16.0", "@transmute/credentials-context": "0.7.0-unstable.80", "@transmute/did-context": "0.7.0-unstable.80", "@transmute/ed25519-signature-2018": "0.7.0-unstable.80", @@ -39,6 +39,5 @@ "dev:docker": "nodemon .", "start": "node dist/index.js" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/notification-service/package.json b/notification-service/package.json index f97ae0830..930dd7b46 100644 --- a/notification-service/package.json +++ b/notification-service/package.json @@ -1,8 +1,8 @@ { "author": "Envision Blockchain Solutions ", "dependencies": { - "@guardian/common": "^2.16.0-prerelease", - "@guardian/interfaces": "^2.16.0-prerelease", + "@guardian/common": "^2.16.0", + "@guardian/interfaces": "^2.16.0", "@mikro-orm/core": "5.7.12", "@mikro-orm/mongodb": "5.7.12", "@nestjs/common": "^9.4.1", @@ -47,6 +47,5 @@ "start": "node dist/index.js", "watch": "nodemon src/index.ts" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/package.json b/package.json index 14660c97f..47126bfe2 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,5 @@ "api-tests", "notification-service" ], - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/policy-service/package.json b/policy-service/package.json index d64910689..112741630 100644 --- a/policy-service/package.json +++ b/policy-service/package.json @@ -11,8 +11,8 @@ }, "author": "Envision Blockchain Solutions ", "dependencies": { - "@guardian/common": "2.16.0-prerelease", - "@guardian/interfaces": "2.16.0-prerelease", + "@guardian/common": "2.16.0", + "@guardian/interfaces": "2.16.0", "@hashgraph/sdk": "2.24.2", "@mattrglobal/jsonld-signatures-bbs": "^1.1.2", "@meeco/cryppo": "2.0.2", @@ -93,6 +93,5 @@ "test:local": "mocha tests/**/*.test.js", "test:stability": "mocha tests/stability.test.js" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/swagger-analytics.yaml b/swagger-analytics.yaml index a4ec10b59..7c57036e5 100644 --- a/swagger-analytics.yaml +++ b/swagger-analytics.yaml @@ -208,7 +208,7 @@ info: the heart of the Guardian solution is a sophisticated Policy Workflow Engine (PWE) that enables applications to offer a requirements-based tokenization implementation. - version: 2.16.0-prerelease + version: 2.16.0 contact: name: API developer url: https://envisionblockchain.com diff --git a/swagger.yaml b/swagger.yaml index 43a508a8d..45e5279e7 100644 --- a/swagger.yaml +++ b/swagger.yaml @@ -6643,7 +6643,7 @@ info: the heart of the Guardian solution is a sophisticated Policy Workflow Engine (PWE) that enables applications to offer a requirements-based tokenization implementation. - version: 2.16.0-prerelease + version: 2.16.0 contact: name: API developer url: https://envisionblockchain.com diff --git a/topic-viewer/package.json b/topic-viewer/package.json index 2ff73e3ca..afff97ebf 100644 --- a/topic-viewer/package.json +++ b/topic-viewer/package.json @@ -29,6 +29,5 @@ "dev": "tsc -w", "start": "node dist/index.js" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/tree-viewer/package.json b/tree-viewer/package.json index 58327a09a..362b7d67a 100644 --- a/tree-viewer/package.json +++ b/tree-viewer/package.json @@ -27,6 +27,5 @@ "dev": "tsc -w", "start": "node dist/index.js" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/worker-service/configs/.env.worker b/worker-service/configs/.env.worker index eabf0a547..e4101e2da 100644 --- a/worker-service/configs/.env.worker +++ b/worker-service/configs/.env.worker @@ -18,7 +18,7 @@ IPFS_TIMEOUT="720" IPFS_PROVIDER="web3storage" # 'web3storage' or 'local' IPFS_PUBLIC_GATEWAY='https://ipfs.eth.aragon.network/ipfs/${cid}' IPFS_STORAGE_API_KEY="..." -IPFS_NODE_ADDRESS="http://localhost:5002" +IPFS_NODE_ADDRESS="http://localhost:5001" MAX_HEDERA_TIMEOUT="600" MQ_MAX_PAYLOAD="1048576" #LOG_LEVEL="2" diff --git a/worker-service/configs/.env.worker.develop b/worker-service/configs/.env.worker.develop index 87fd3db72..75466c6e2 100644 --- a/worker-service/configs/.env.worker.develop +++ b/worker-service/configs/.env.worker.develop @@ -18,7 +18,7 @@ IPFS_TIMEOUT="720" IPFS_PROVIDER="web3storage" # 'web3storage' or 'local' IPFS_PUBLIC_GATEWAY='https://w3s.link/ipfs/${cid}' IPFS_STORAGE_API_KEY="..." -IPFS_NODE_ADDRESS="http://localhost:5002" +IPFS_NODE_ADDRESS="http://localhost:5001" MAX_HEDERA_TIMEOUT="600" MQ_MAX_PAYLOAD="1048576" #LOG_LEVEL="2" diff --git a/worker-service/configs/.env.worker.template b/worker-service/configs/.env.worker.template index 1c715e829..30666edf5 100644 --- a/worker-service/configs/.env.worker.template +++ b/worker-service/configs/.env.worker.template @@ -18,7 +18,7 @@ IPFS_TIMEOUT="720" IPFS_PROVIDER="web3storage" # 'web3storage' or 'local' IPFS_PUBLIC_GATEWAY='https://ipfs.io/ipfs/${cid}' IPFS_STORAGE_API_KEY="..." -IPFS_NODE_ADDRESS="http://localhost:5002" +IPFS_NODE_ADDRESS="http://localhost:5001" MAX_HEDERA_TIMEOUT="" MQ_MAX_PAYLOAD="" #LOG_LEVEL="2" diff --git a/worker-service/package.json b/worker-service/package.json index 0bcf432d3..c816d2906 100644 --- a/worker-service/package.json +++ b/worker-service/package.json @@ -1,8 +1,8 @@ { "author": "Envision Blockchain Solutions ", "dependencies": { - "@guardian/common": "^2.16.0-prerelease", - "@guardian/interfaces": "^2.16.0-prerelease", + "@guardian/common": "^2.16.0", + "@guardian/interfaces": "^2.16.0", "@hashgraph/sdk": "2.24.2", "@nestjs/common": "^9.4.1", "@nestjs/core": "^9.4.1", @@ -59,6 +59,5 @@ "start": "node dist/index.js", "test": "mocha tests/**/*.test.js --reporter mocha-junit-reporter --reporter-options mochaFile=../test_results/worker-service.xml --exit" }, - "version": "2.16.0-prerelease", - "stableVersion": "2.15.0" + "version": "2.16.0" } diff --git a/yarn.lock b/yarn.lock index 6f82a37d3..7f3284608 100644 --- a/yarn.lock +++ b/yarn.lock @@ -887,7 +887,7 @@ __metadata: languageName: node linkType: hard -"@guardian/common@2.16.0-prerelease, @guardian/common@^2.16.0-prerelease, @guardian/common@workspace:common": +"@guardian/common@2.16.0, @guardian/common@^2.16.0, @guardian/common@workspace:common": version: 0.0.0-use.local resolution: "@guardian/common@workspace:common" dependencies: @@ -895,7 +895,7 @@ __metadata: "@azure/identity": ^3.2.2 "@azure/keyvault-secrets": ^4.7.0 "@google-cloud/secret-manager": ^4.2.2 - "@guardian/interfaces": ^2.16.0-prerelease + "@guardian/interfaces": ^2.16.0 "@hashgraph/sdk": 2.24.2 "@mattrglobal/jsonld-signatures-bbs": ^1.1.2 "@meeco/cryppo": ^2.0.2 @@ -947,7 +947,7 @@ __metadata: languageName: unknown linkType: soft -"@guardian/interfaces@2.16.0-prerelease, @guardian/interfaces@^2.16.0-prerelease, @guardian/interfaces@workspace:interfaces": +"@guardian/interfaces@2.16.0, @guardian/interfaces@^2.16.0, @guardian/interfaces@workspace:interfaces": version: 0.0.0-use.local resolution: "@guardian/interfaces@workspace:interfaces" dependencies: @@ -3435,8 +3435,8 @@ __metadata: version: 0.0.0-use.local resolution: "analytics-service@workspace:analytics-service" dependencies: - "@guardian/common": ^2.16.0-prerelease - "@guardian/interfaces": ^2.16.0-prerelease + "@guardian/common": ^2.16.0 + "@guardian/interfaces": ^2.16.0 "@nestjs/common": ^9.4.1 "@nestjs/core": ^9.4.1 "@nestjs/jwt": ^10.0.3 @@ -3637,8 +3637,8 @@ __metadata: version: 0.0.0-use.local resolution: "api-gateway@workspace:api-gateway" dependencies: - "@guardian/common": ^2.16.0-prerelease - "@guardian/interfaces": ^2.16.0-prerelease + "@guardian/common": ^2.16.0 + "@guardian/interfaces": ^2.16.0 "@nestjs/common": ^9.4.1 "@nestjs/core": ^9.4.1 "@nestjs/jwt": ^10.0.3 @@ -4081,8 +4081,8 @@ __metadata: version: 0.0.0-use.local resolution: "auth-service@workspace:auth-service" dependencies: - "@guardian/common": ^2.16.0-prerelease - "@guardian/interfaces": ^2.16.0-prerelease + "@guardian/common": ^2.16.0 + "@guardian/interfaces": ^2.16.0 "@meeco/cryppo": ^2.0.2 "@mikro-orm/core": 5.7.12 "@mikro-orm/mongodb": 5.7.12 @@ -7587,8 +7587,8 @@ __metadata: version: 0.0.0-use.local resolution: "guardian-service@workspace:guardian-service" dependencies: - "@guardian/common": ^2.16.0-prerelease - "@guardian/interfaces": ^2.16.0-prerelease + "@guardian/common": ^2.16.0 + "@guardian/interfaces": ^2.16.0 "@hashgraph/sdk": 2.24.2 "@mattrglobal/jsonld-signatures-bbs": ^1.1.2 "@meeco/cryppo": ^2.0.2 @@ -10138,8 +10138,8 @@ __metadata: version: 0.0.0-use.local resolution: "logger-service@workspace:logger-service" dependencies: - "@guardian/common": ^2.16.0-prerelease - "@guardian/interfaces": ^2.16.0-prerelease + "@guardian/common": ^2.16.0 + "@guardian/interfaces": ^2.16.0 "@mikro-orm/core": 5.7.12 "@mikro-orm/mongodb": 5.7.12 "@nestjs/common": ^9.4.1 @@ -10931,7 +10931,7 @@ __metadata: version: 0.0.0-use.local resolution: "mrv-sender@workspace:mrv-sender" dependencies: - "@guardian/common": ^2.16.0-prerelease + "@guardian/common": ^2.16.0 "@transmute/credentials-context": 0.7.0-unstable.80 "@transmute/did-context": 0.7.0-unstable.80 "@transmute/ed25519-signature-2018": 0.7.0-unstable.80 @@ -11482,8 +11482,8 @@ __metadata: version: 0.0.0-use.local resolution: "notification-service@workspace:notification-service" dependencies: - "@guardian/common": ^2.16.0-prerelease - "@guardian/interfaces": ^2.16.0-prerelease + "@guardian/common": ^2.16.0 + "@guardian/interfaces": ^2.16.0 "@mikro-orm/core": 5.7.12 "@mikro-orm/mongodb": 5.7.12 "@nestjs/common": ^9.4.1 @@ -12248,8 +12248,8 @@ __metadata: version: 0.0.0-use.local resolution: "policy-service@workspace:policy-service" dependencies: - "@guardian/common": 2.16.0-prerelease - "@guardian/interfaces": 2.16.0-prerelease + "@guardian/common": 2.16.0 + "@guardian/interfaces": 2.16.0 "@hashgraph/sdk": 2.24.2 "@mattrglobal/jsonld-signatures-bbs": ^1.1.2 "@meeco/cryppo": 2.0.2 @@ -15498,8 +15498,8 @@ __metadata: version: 0.0.0-use.local resolution: "worker-service@workspace:worker-service" dependencies: - "@guardian/common": ^2.16.0-prerelease - "@guardian/interfaces": ^2.16.0-prerelease + "@guardian/common": ^2.16.0 + "@guardian/interfaces": ^2.16.0 "@hashgraph/sdk": 2.24.2 "@nestjs/common": ^9.4.1 "@nestjs/core": ^9.4.1