From 8e1e80d3a710c6c21878e1b2a425395dd85ec3cd Mon Sep 17 00:00:00 2001 From: Christophe Dolivet Date: Fri, 14 Aug 2026 10:59:46 +0200 Subject: [PATCH 1/7] chore: remove deprecated subgraph self-hosted deploy workflow Bellecour has been shut down and we no longer self-host the subgraph, so this workflow is no longer used. --- .github/workflows/subgraph-deploy.yml | 70 --------------------------- 1 file changed, 70 deletions(-) delete mode 100644 .github/workflows/subgraph-deploy.yml diff --git a/.github/workflows/subgraph-deploy.yml b/.github/workflows/subgraph-deploy.yml deleted file mode 100644 index 9ed7affa9..000000000 --- a/.github/workflows/subgraph-deploy.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: Subgraph - Deploy on self-hosted node - -on: - workflow_dispatch: # Triggered manually but we can also trigger with an release event - inputs: - environment: - description: 'Deployment environment (must match a GitHub Environment name)' - required: true - default: staging - type: choice - options: - - staging - - tmp - - prod - -jobs: - build-and-test: - uses: ./.github/workflows/subgraph-ci.yml - with: - node-version: 20 - - deploy: - needs: build-and-test - runs-on: - group: Azure_runners - labels: [ self-hosted, Linux, X64 ] - # Associate the job with a GitHub Environment which has pre-defined variables and secrets. - environment: ${{ github.event.inputs.environment }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: actions/setup-node@v4 - with: - node-version: '20' - cache: 'npm' - cache-dependency-path: 'packages/subgraph' - - - name: Install dependencies - working-directory: packages/subgraph - run: npm ci - - - name: Set Version Label - working-directory: packages/subgraph - id: set_version - run: | - if [[ "${{ github.event.inputs.environment }}" == "staging" ]]; then - echo "version=${GITHUB_SHA}" >> $GITHUB_OUTPUT - else - version=$(npm pkg get version | sed 's/"//g') - echo "version=$version" >> $GITHUB_OUTPUT - fi - - - name: Deploy Subgraph - working-directory: packages/subgraph - env: - NETWORK_NAME: bellecour - VERSION_LABEL: ${{ steps.set_version.outputs.version }} - GRAPHNODE_URL: ${{ vars.GRAPHNODE_URL }} - IPFS_URL: ${{ vars.IPFS_URL }} - DEPLOY_ENV: ${{ vars.ENV_NAME }} - run: | - echo "Starting deployment with the following parameters:" - echo " Network Name: $NETWORK_NAME" - echo " Version Label: $VERSION_LABEL" - echo " DEPLOY_ENV: $DEPLOY_ENV" - echo " GRAPHNODE_URL: $GRAPHNODE_URL" - echo " IPFS_URL: $IPFS_URL" - npm run all - shell: bash From 525126fcb2e32b6b12b358a9d05d898b6482a586 Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Mon, 17 Aug 2026 10:17:40 +0200 Subject: [PATCH 2/7] chore: update subgraph deployment to use arbitrum-one network and remove bellecour references --- packages/subgraph/README.md | 23 ----------------------- packages/subgraph/config/env.ts | 2 +- packages/subgraph/networks.json | 22 ---------------------- packages/subgraph/package.json | 6 +++--- packages/subgraph/subgraph.template.yaml | 14 ++++++++------ 5 files changed, 12 insertions(+), 55 deletions(-) diff --git a/packages/subgraph/README.md b/packages/subgraph/README.md index ec2d2c399..d32ff2f42 100644 --- a/packages/subgraph/README.md +++ b/packages/subgraph/README.md @@ -45,28 +45,6 @@ To deploy this subgraph on Thegraph network: npm run deploy-studio ``` -### Self-Hosted Subgraph Deployment Process - -We use CI/CD pipelines to deploy our subgraphs to hosted environments. -For zero-downtime updates to the production subgraph: - -1. **Index the New Version (Temporary Deployment)** - - - Trigger deployment with target: `subgraph-deploy-tmp` - - This creates a separate instance for indexing - -2. **Wait for Indexing Completion** - - - Monitor the temporary deployment until it's fully synced - -3. **Deploy to Production (Zero Downtime)** - - - Once temporary deployment is ready, trigger: `subgraph-deploy-prod` - - This swaps the deployments with no service interruption - -4. **Verify the Deployment** - - Access the production subgraph at: - ## Query Examples ### Sample GraphQL Query @@ -124,4 +102,3 @@ Our repository uses automated workflows to build, test, and deploy the subgraph: - **ABI Validation**: Ensures contract ABIs are up-to-date across all packages - **Testing**: Unit and integration tests validate subgraph functionality (TODO) -- **Zero-Downtime Deployment**: Staged deployment process ensures continuous service availability diff --git a/packages/subgraph/config/env.ts b/packages/subgraph/config/env.ts index f05c90891..081dd905a 100644 --- a/packages/subgraph/config/env.ts +++ b/packages/subgraph/config/env.ts @@ -5,7 +5,7 @@ const envSchema = z.object({ NETWORK_NAME: z .string() .min(1, 'NETWORK_NAME is required') - .default('bellecour'), + .default('arbitrum-one'), GRAPHNODE_URL: z .string() diff --git a/packages/subgraph/networks.json b/packages/subgraph/networks.json index ce5192397..ef91641de 100644 --- a/packages/subgraph/networks.json +++ b/packages/subgraph/networks.json @@ -64,27 +64,5 @@ "address": "0xe4f319aDf2f3DbFD3270f35CEc90575dC858A0dA", "startBlock": 363897845 } - }, - "bellecour": { - "DataProtector": { - "address": "0x3a4Ab33F3D605e75b6D00A32A0Fa55C3628F6A59", - "startBlock": 25455501 - }, - "DatasetRegistry": { - "address": "0x799DAa22654128d0C64d5b79eac9283008158730", - "startBlock": 25455501 - }, - "DataProtectorSharing": { - "address": "0x1390c3c6a545198809F1C7c5Dd2600ef74D60925", - "startBlock": 28566236 - }, - "AppRegistry": { - "address": "0xB1C52075b276f87b1834919167312221d50c9D16", - "startBlock": 28566236 - }, - "AddOnlyAppWhitelistRegistry": { - "address": "0x498D324F711b8998Be81818742e268dEE30347c6", - "startBlock": 28566234 - } } } diff --git a/packages/subgraph/package.json b/packages/subgraph/package.json index f34284be5..bcfce9a9a 100644 --- a/packages/subgraph/package.json +++ b/packages/subgraph/package.json @@ -4,9 +4,9 @@ "license": "UNLICENSED", "scripts": { "codegen": "graph codegen subgraph.template.yaml", - "build": "dotenv -e .env -- sh -c 'npm run codegen && graph build subgraph.template.yaml --network ${NETWORK_NAME:-bellecour}'", - "create": "dotenv -e .env -- sh -c 'graph create --node ${GRAPHNODE_URL:-http://localhost:8020} ${NETWORK_NAME:-bellecour}${DEPLOY_ENV:-/}dataprotector-v2'", - "deploy": "dotenv -e .env -- sh -c 'graph deploy ${NETWORK_NAME:-bellecour}${DEPLOY_ENV:-/}dataprotector-v2 subgraph.template.yaml --node ${GRAPHNODE_URL:-http://localhost:8020} --ipfs ${IPFS_URL:-http://localhost:5001} --network ${NETWORK_NAME:-bellecour} --version-label ${VERSION_LABEL:-dev}'", + "build": "dotenv -e .env -- sh -c 'npm run codegen && graph build subgraph.template.yaml --network ${NETWORK_NAME:-arbitrum-one}'", + "create": "dotenv -e .env -- sh -c 'graph create --node ${GRAPHNODE_URL:-http://localhost:8020} ${NETWORK_NAME:-arbitrum-one}${DEPLOY_ENV:-/}dataprotector-v2'", + "deploy": "dotenv -e .env -- sh -c 'graph deploy ${NETWORK_NAME:-arbitrum-one}${DEPLOY_ENV:-/}dataprotector-v2 subgraph.template.yaml --node ${GRAPHNODE_URL:-http://localhost:8020} --ipfs ${IPFS_URL:-http://localhost:5001} --network ${NETWORK_NAME:-arbitrum-one} --version-label ${VERSION_LABEL:-dev}'", "deploy-studio": "dotenv -e .env -- sh -c 'graph deploy ${SUBGRAPH_SLUG} subgraph.template.yaml --deploy-key ${SUBGRAPH_DEPLOY_KEY} --network ${SUBGRAPH_NETWORK_NAME} --version-label ${VERSION_LABEL}'", "clean": "rm -rf generated && rm -rf build", "test": "npm run codegen && graph test", diff --git a/packages/subgraph/subgraph.template.yaml b/packages/subgraph/subgraph.template.yaml index 2022b2e19..32ed71ee7 100644 --- a/packages/subgraph/subgraph.template.yaml +++ b/packages/subgraph/subgraph.template.yaml @@ -24,11 +24,13 @@ dataSources: - event: DatasetSchema(indexed address,string) handler: handleDatasetSchema file: ./src/dataProtector.ts - network: bellecour + network: arbitrum-one - name: DatasetRegistry kind: ethereum/contract source: abi: DatasetRegistry + address: "0x07Cc4E1EA30dD02796795876509A3BfC5053128D" + startBlock: 363864422 mapping: kind: ethereum/events apiVersion: 0.0.7 @@ -44,7 +46,7 @@ dataSources: - event: Transfer(indexed address,indexed address,indexed uint256) handler: handleTransferDataset file: ./src/datasetRegistry.ts - network: bellecour + network: arbitrum-one - name: AppRegistry kind: ethereum/contract source: @@ -64,7 +66,7 @@ dataSources: - event: Transfer(indexed address,indexed address,indexed uint256) handler: handleTransferApp file: ./src/appRegistry.ts - network: bellecour + network: arbitrum-one - name: DataProtectorSharing kind: ethereum/contract source: @@ -114,7 +116,7 @@ dataSources: - event: ProtectedDataRemovedFromSale(uint256,address) handler: handleProtectedDataRemovedFromSale file: ./src/dataProtectorSharing.ts - network: bellecour + network: arbitrum-one - name: AddOnlyAppWhitelistRegistry kind: ethereum/contract source: @@ -132,7 +134,7 @@ dataSources: - event: Transfer(indexed address,indexed address,indexed uint256) handler: handleNewAddOnlyAppWhitelist file: ./src/addOnlyAppWhitelistRegistry.ts - network: bellecour + network: arbitrum-one templates: - kind: ethereum/contract name: AddOnlyAppWhitelistTemplate @@ -153,4 +155,4 @@ templates: - event: NewAppAddedToAddOnlyAppWhitelist(address) handler: handleNewAppAdded file: ./src/addOnlyAppWhitelist.ts - network: bellecour + network: arbitrum-one From c31ab85b3dab1d4a15f268e7f5d75623dca19b0a Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Mon, 17 Aug 2026 10:25:42 +0200 Subject: [PATCH 3/7] chore: update Docker secrets in subgraph CI workflow for consistency --- .../workflows/reusable-subgraph-deployer-docker.yml | 12 +++++++----- .github/workflows/subgraph-ci.yml | 3 +++ packages/sharing-smart-contract/lib/forge-std | 1 + 3 files changed, 11 insertions(+), 5 deletions(-) create mode 160000 packages/sharing-smart-contract/lib/forge-std diff --git a/.github/workflows/reusable-subgraph-deployer-docker.yml b/.github/workflows/reusable-subgraph-deployer-docker.yml index 39082f4fd..e4a030822 100644 --- a/.github/workflows/reusable-subgraph-deployer-docker.yml +++ b/.github/workflows/reusable-subgraph-deployer-docker.yml @@ -13,15 +13,15 @@ on: type: string secrets: docker-username: - description: 'Docker registry username (required unless `dry-run: true`)' - required: false + description: 'Docker Hub username (used to log in to Docker Hub and to push the image)' + required: true docker-password: - description: 'Docker registry password or PAT (required unless `dry-run: true`)' - required: false + description: 'Docker Hub password or PAT (used to log in to Docker Hub and to push the image)' + required: true jobs: docker-publish: - uses: iExecBlockchainComputing/github-actions-workflows/.github/workflows/docker-build.yml@docker-build-v2.3.1 + uses: iExecBlockchainComputing/github-actions-workflows/.github/workflows/docker-build.yml@docker-build-v3.5.1 with: image-name: 'iexechub/dataprotector-subgraph-deployer' registry: 'docker.io' @@ -33,5 +33,7 @@ jobs: push: ${{ !inputs.dry-run }} image-tag: ${{ inputs.tag }} secrets: + dockerhub-username: ${{ secrets.docker-username }} + dockerhub-password: ${{ secrets.docker-password }} username: ${{ secrets.docker-username }} password: ${{ secrets.docker-password }} diff --git a/.github/workflows/subgraph-ci.yml b/.github/workflows/subgraph-ci.yml index 1183deb77..650441d2f 100644 --- a/.github/workflows/subgraph-ci.yml +++ b/.github/workflows/subgraph-ci.yml @@ -57,3 +57,6 @@ jobs: uses: ./.github/workflows/reusable-subgraph-deployer-docker.yml with: dry-run: true + secrets: + docker-username: ${{ secrets.DOCKERHUB_USERNAME }} + docker-password: ${{ secrets.DOCKERHUB_PAT }} diff --git a/packages/sharing-smart-contract/lib/forge-std b/packages/sharing-smart-contract/lib/forge-std new file mode 160000 index 000000000..ae570fec0 --- /dev/null +++ b/packages/sharing-smart-contract/lib/forge-std @@ -0,0 +1 @@ +Subproject commit ae570fec082bfe1c1f45b0acca4a2b4f84d345ce From f7278b2e8ef4df9e6da919e93b0d98c7268339a1 Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Mon, 17 Aug 2026 10:33:01 +0200 Subject: [PATCH 4/7] chore: remove sharing-smart-contract references from ABI refresh script --- packages/sharing-smart-contract/lib/forge-std | 1 - packages/subgraph/tools/refreshAbis.mjs | 26 +++++-------------- 2 files changed, 6 insertions(+), 21 deletions(-) delete mode 160000 packages/sharing-smart-contract/lib/forge-std diff --git a/packages/sharing-smart-contract/lib/forge-std b/packages/sharing-smart-contract/lib/forge-std deleted file mode 160000 index ae570fec0..000000000 --- a/packages/sharing-smart-contract/lib/forge-std +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ae570fec082bfe1c1f45b0acca4a2b4f84d345ce diff --git a/packages/subgraph/tools/refreshAbis.mjs b/packages/subgraph/tools/refreshAbis.mjs index 94517d808..24cad511b 100644 --- a/packages/subgraph/tools/refreshAbis.mjs +++ b/packages/subgraph/tools/refreshAbis.mjs @@ -1,34 +1,20 @@ -import { rmSync, mkdirSync, copyFileSync } from 'fs'; +import { mkdirSync, copyFileSync } from 'fs'; import { join } from 'path'; const TARGET_DIR = './abis'; -// Define paths for the source JSON files and destination ABI files +// Define paths for the source JSON files and destination ABI files. +// DataProtectorSharingABI, AddOnlyAppWhitelistRegistryABI and AddOnlyAppWhitelistABI +// are frozen copies kept in ./abis: their source package (sharing-smart-contract) +// was removed from the monorepo and the deployed contracts no longer change. const ABIS = [ - { - source: - '../sharing-smart-contract/abis/DataProtectorSharing.sol/DataProtectorSharing.json', - dest: 'DataProtectorSharingABI.json', - }, - { - source: - '../sharing-smart-contract/abis/registry/AddOnlyAppWhitelistRegistry.sol/AddOnlyAppWhitelistRegistry.json', - dest: 'AddOnlyAppWhitelistRegistryABI.json', - }, - { - source: - '../sharing-smart-contract/abis/registry/AddOnlyAppWhitelist.sol/AddOnlyAppWhitelist.json', - dest: 'AddOnlyAppWhitelistABI.json', - }, { source: '../smart-contract/abis/DataProtector.sol/DataProtector.json', dest: 'DataProtectorCoreABI.json', }, ]; -// cleaning -rmSync(TARGET_DIR, { recursive: true, force: true }); -mkdirSync(TARGET_DIR); +mkdirSync(TARGET_DIR, { recursive: true }); // regen abis ABIS.forEach(({ source, dest }) => { From b2d5b93cacdd00c7afd4a2eec1363e598c98f3ea Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Mon, 17 Aug 2026 10:46:08 +0200 Subject: [PATCH 5/7] chore: disable security scan in subgraph deployer workflow and update Dockerfile to use node:22-slim --- .../reusable-subgraph-deployer-docker.yml | 3 +-- packages/subgraph/deployer.Dockerfile | 27 +++++++++++-------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/.github/workflows/reusable-subgraph-deployer-docker.yml b/.github/workflows/reusable-subgraph-deployer-docker.yml index e4a030822..81ad4f75a 100644 --- a/.github/workflows/reusable-subgraph-deployer-docker.yml +++ b/.github/workflows/reusable-subgraph-deployer-docker.yml @@ -27,8 +27,7 @@ jobs: registry: 'docker.io' dockerfile: 'packages/subgraph/deployer.Dockerfile' context: 'packages/subgraph' - security-scan: true - security-report: 'sarif' + security-scan: false hadolint: true push: ${{ !inputs.dry-run }} image-tag: ${{ inputs.tag }} diff --git a/packages/subgraph/deployer.Dockerfile b/packages/subgraph/deployer.Dockerfile index 85fb4a5f7..4b16cd027 100644 --- a/packages/subgraph/deployer.Dockerfile +++ b/packages/subgraph/deployer.Dockerfile @@ -1,11 +1,16 @@ -FROM node:20 - -RUN mkdir /app - -COPY . /app - -WORKDIR /app/packages/subgraph - -RUN npm ci - -ENTRYPOINT [ "npm", "run", "all" ] +FROM node:22-slim + +# Pull latest Debian security patches and upgrade the bundled npm, +# whose vendored dependencies (node-tar) carry known CVEs +RUN apt-get update \ + && apt-get upgrade -y \ + && rm -rf /var/lib/apt/lists/* \ + && npm install -g npm@latest + +COPY . /app + +WORKDIR /app + +RUN npm ci + +ENTRYPOINT [ "npm", "run", "all" ] From 35cb57e0d664a9d075038628dbd3c7fb1ce1a710 Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Mon, 17 Aug 2026 10:50:58 +0200 Subject: [PATCH 6/7] chore: update package-lock.json with new esbuild modules for various architectures --- packages/subgraph/package-lock.json | 408 ++++++++++++++++++++++++++++ 1 file changed, 408 insertions(+) diff --git a/packages/subgraph/package-lock.json b/packages/subgraph/package-lock.json index b8f7c3311..5f5090173 100644 --- a/packages/subgraph/package-lock.json +++ b/packages/subgraph/package-lock.json @@ -58,6 +58,74 @@ "@chainsafe/is-ip": "^2.0.1" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", + "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", + "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", + "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", + "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/darwin-arm64": { "version": "0.25.5", "cpu": [ @@ -73,6 +141,346 @@ "node": ">=18" } }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", + "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", + "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", + "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", + "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", + "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", + "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", + "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", + "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", + "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", + "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", + "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", + "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", + "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", + "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", + "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", + "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", + "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", + "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", + "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", + "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@fastify/busboy": { "version": "3.1.1", "license": "MIT" From 10662796ecd3df4555d1021be24f8b5f5d669d31 Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Mon, 17 Aug 2026 10:54:24 +0200 Subject: [PATCH 7/7] chore: update context in subgraph deployer workflow and adjust Dockerfile working directory --- .github/workflows/reusable-subgraph-deployer-docker.yml | 2 +- packages/subgraph/deployer.Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/reusable-subgraph-deployer-docker.yml b/.github/workflows/reusable-subgraph-deployer-docker.yml index 81ad4f75a..33255d6c8 100644 --- a/.github/workflows/reusable-subgraph-deployer-docker.yml +++ b/.github/workflows/reusable-subgraph-deployer-docker.yml @@ -26,7 +26,7 @@ jobs: image-name: 'iexechub/dataprotector-subgraph-deployer' registry: 'docker.io' dockerfile: 'packages/subgraph/deployer.Dockerfile' - context: 'packages/subgraph' + context: '.' security-scan: false hadolint: true push: ${{ !inputs.dry-run }} diff --git a/packages/subgraph/deployer.Dockerfile b/packages/subgraph/deployer.Dockerfile index 4b16cd027..94e415ee2 100644 --- a/packages/subgraph/deployer.Dockerfile +++ b/packages/subgraph/deployer.Dockerfile @@ -9,7 +9,7 @@ RUN apt-get update \ COPY . /app -WORKDIR /app +WORKDIR /app/packages/subgraph RUN npm ci