Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
c91011c
feat: added support for otel and signoz
tipusinghaw Jun 20, 2025
ddcb500
refactor: added comment
tipusinghaw Jun 20, 2025
c7b255e
refactor: resolved sonarcloud issues
tipusinghaw Jun 20, 2025
73233d6
refactor: resolve trace issue
tipusinghaw Jun 20, 2025
3acbd7e
Merge pull request #278 from credebl/feat/otel-and-signoz-integration
ajile-in Jun 20, 2025
151d17f
refactor: changes env endpoint
tipusinghaw Jun 23, 2025
4f62739
Merge pull request #279 from credebl/feat/otel-and-signoz-integration
tipusinghaw Jun 23, 2025
09933b1
feat: update taskef for ARM arch (#290)
KambleSahil3 Jul 15, 2025
5ee6873
refactor: updated fargate taskdef for ARM arch (#292)
KambleSahil3 Jul 22, 2025
bd23cbd
feat: token mgmt and removal of duplicate routes . Updating Credo ver…
GHkrishna Aug 5, 2025
f63e261
fix: added patch for getFormatData
tipusinghaw Aug 6, 2025
75d4f74
Merge pull request #293 from credebl/fix/error-handling-in-get-format…
tipusinghaw Aug 6, 2025
aa15ccb
fix: scopes for polygon controller to allow estimation of transaction…
GHkrishna Aug 7, 2025
edae4a3
feat: update dockerfile and workflow file to support multi arch (#294)
KambleSahil3 Aug 7, 2025
d8be6ac
fix: DCO remediation ability (#298)
GHkrishna Aug 7, 2025
81cf411
Third-Party DCO Remediation Commit for Sahil Kamble <sahil.kamble@aya…
GHkrishna Aug 7, 2025
272c17e
Merge pull request #296 from credebl/develop
KambleSahil3 Aug 7, 2025
5b159b4
fix: agent tenant auth health (#300)
GHkrishna Aug 12, 2025
eabc778
fix: Non wallet badge issuance error due to datatype check on api (#306)
sujitaw Aug 29, 2025
c7daf19
fix/verify credentials api
sujitaw Sep 1, 2025
a2dd44e
fix/verify credentials api (#308)
sujitaw Sep 1, 2025
aa38e9d
Third-Party DCO Remediation Commit for sujitaw <sujit.sutar@ayanworks…
sujitaw Sep 1, 2025
795cfc2
Merge pull request #311 from credebl/fix/dco_issue_through_remediation
sujitaw Sep 1, 2025
b90cbaf
Merge pull request #309 from credebl/develop
sujitaw Sep 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .env.demo
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ RPC_URL=https://polygon-rpc.com
SERVER_URL=https://schema.credebl.id
FILE_SERVER_TOKEN=

OTEL_SERVICE_NAME='CREDEBL-CREDO-CONTROLLER-SERVICE'
OTEL_SERVICE_VERSION='1.0.0'
OTEL_TRACES_OTLP_ENDPOINT='http://localhost:4318/v1/traces'
OTEL_LOGS_OTLP_ENDPOINT='http://localhost:4318/v1/logs'
OTEL_HEADERS_KEY='88caXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
OTEL_LOGGER_NAME='credo-controller-logger'

BCOVRIN_TEST_GENESIS='{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node1","blskey":"4N8aUNHSgjQVgkpm8nhNEfDf6txHznoYREg9kirmJrkivgL4oSEimFF6nsQ6M41QvhM2Z33nves5vfSn9n1UwNFJBYtWVnHYMATn76vLuL3zU88KyeAYcHfsih3He6UHcXDxcaecHVz6jhCYz1P2UZn2bDVruL5wXpehgBfBaLKm3Ba","blskey_pop":"RahHYiCvoNCtPTrVtP7nMC5eTYrsUA8WjXbdhNc8debh1agE9bGiJxWBXYNFbnJXoXhWFMvyqhqhRoq737YQemH5ik9oL7R4NTTCz2LEZhkgLJzB3QRQqJyBNyv7acbdHrAT8nQ9UkLbaVL9NBpnWXBTw4LEMePaSHEw66RzPNdAX1","client_ip":"138.197.138.255","client_port":9702,"node_ip":"138.197.138.255","node_port":9701,"services":["VALIDATOR"]},"dest":"Gw6pDLhcBcoQesN72qfotTgFa7cbuqZpkX3Xo6pLhPhv"},"metadata":{"from":"Th7MpTaRZVRYnPiabds81Y"},"type":"0"},"txnMetadata":{"seqNo":1,"txnId":"fea82e10e894419fe2bea7d96296a6d46f50f93f9eeda954ec461b2ed2950b62"},"ver":"1"}
{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node2","blskey":"37rAPpXVoxzKhz7d9gkUe52XuXryuLXoM6P6LbWDB7LSbG62Lsb33sfG7zqS8TK1MXwuCHj1FKNzVpsnafmqLG1vXN88rt38mNFs9TENzm4QHdBzsvCuoBnPH7rpYYDo9DZNJePaDvRvqJKByCabubJz3XXKbEeshzpz4Ma5QYpJqjk","blskey_pop":"Qr658mWZ2YC8JXGXwMDQTzuZCWF7NK9EwxphGmcBvCh6ybUuLxbG65nsX4JvD4SPNtkJ2w9ug1yLTj6fgmuDg41TgECXjLCij3RMsV8CwewBVgVN67wsA45DFWvqvLtu4rjNnE9JbdFTc1Z4WCPA3Xan44K1HoHAq9EVeaRYs8zoF5","client_ip":"138.197.138.255","client_port":9704,"node_ip":"138.197.138.255","node_port":9703,"services":["VALIDATOR"]},"dest":"8ECVSk179mjsjKRLWiQtssMLgp6EPhWXtaYyStWPSGAb"},"metadata":{"from":"EbP4aYNeTHL6q385GuVpRV"},"type":"0"},"txnMetadata":{"seqNo":2,"txnId":"1ac8aece2a18ced660fef8694b61aac3af08ba875ce3026a160acbc3a3af35fc"},"ver":"1"}
{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node3","blskey":"3WFpdbg7C5cnLYZwFZevJqhubkFALBfCBBok15GdrKMUhUjGsk3jV6QKj6MZgEubF7oqCafxNdkm7eswgA4sdKTRc82tLGzZBd6vNqU8dupzup6uYUf32KTHTPQbuUM8Yk4QFXjEf2Usu2TJcNkdgpyeUSX42u5LqdDDpNSWUK5deC5","blskey_pop":"QwDeb2CkNSx6r8QC8vGQK3GRv7Yndn84TGNijX8YXHPiagXajyfTjoR87rXUu4G4QLk2cF8NNyqWiYMus1623dELWwx57rLCFqGh7N4ZRbGDRP4fnVcaKg1BcUxQ866Ven4gw8y4N56S5HzxXNBZtLYmhGHvDtk6PFkFwCvxYrNYjh","client_ip":"138.197.138.255","client_port":9706,"node_ip":"138.197.138.255","node_port":9705,"services":["VALIDATOR"]},"dest":"DKVxG2fXXTU8yT5N7hGEbXB3dfdAnYv1JczDUHpmDxya"},"metadata":{"from":"4cU41vWW82ArfxJxHkzXPG"},"type":"0"},"txnMetadata":{"seqNo":3,"txnId":"7e9f355dffa78ed24668f0e0e369fd8c224076571c51e2ea8be5f26479edebe4"},"ver":"1"}
Expand Down
78 changes: 0 additions & 78 deletions .eslintrc.js

This file was deleted.

3 changes: 3 additions & 0 deletions .github/dco.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
allowRemediationCommits:
individual: true
thirdParty: true
9 changes: 7 additions & 2 deletions .github/workflows/continuous-delivery.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ jobs:
id: get_tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
Expand All @@ -39,8 +45,7 @@ jobs:
context: .
file: Dockerfile
push: true
platforms: linux/amd64,linux/arm64
tags: |
${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.SERVICE }}:${{ env.TAG }}
${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.SERVICE }}:latest


16 changes: 8 additions & 8 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,37 +2,37 @@

on:
pull_request:
branches: [main]
branches: [main, develop]
push:
branches: [main]
branches: [main, develop]

concurrency:
# Cancel previous runs that are not completed yet
group: afj-controller-${{ github.ref }}-${{ github.repository }}-${{ github.event_name }}
group: credo-controller-${{ github.ref }}-${{ github.repository }}-${{ github.event_name }}
cancel-in-progress: true

jobs:
validate:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
name: Validate
steps:
- name: Checkout afj-controller
- name: Checkout credo-controller
uses: actions/checkout@v4

- name: Setup NodeJS
uses: actions/setup-node@v3
- name: Setup node v20
uses: actions/setup-node@v4
with:
node-version: 18.19.0
node-version: 20
cache: 'yarn'
Comment on lines +16 to 26
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Node 20 + ubuntu-24.04 — pin Yarn via Corepack and tighten installs

To avoid Yarn version drift and improve reproducibility:

  • Enable Corepack (especially if using Yarn Berry).
  • Use immutable installs if on Yarn Berry, or frozen lockfile on Yarn v1.

Detect Yarn setup:

Suggested steps:

       - name: Setup node v20
         uses: actions/setup-node@v4
         with:
           node-version: 20
           cache: 'yarn'
+
+      - name: Enable Corepack
+        run: corepack enable
+
       - name: Install dependencies
-        run: yarn install
+        run: |
+          if [ -f ".yarnrc.yml" ]; then yarn install --immutable; else yarn install --frozen-lockfile; fi

🏁 Script executed:

#!/bin/bash
# Is Yarn Berry in use?
if [ -f ".yarnrc.yml" ]; then
  echo "Yarn Berry detected (.yarnrc.yml present). Consider --immutable and corepack."
else
  echo "Likely Yarn v1. Consider --frozen-lockfile."
fi
rg -n "yarnPath" .yarnrc.yml || true

Length of output: 209


Enable Corepack and enforce frozen lockfile

Add a Corepack‐enable step immediately after setting up Node, and use yarn install --frozen-lockfile for deterministic installs:

       - name: Setup node v20
         uses: actions/setup-node@v4
         with:
           node-version: 20
           cache: 'yarn'
+
+      - name: Enable Corepack
+        run: corepack enable
-      - name: Install dependencies
-        run: yarn install
+      - name: Install dependencies
+        run: yarn install --frozen-lockfile
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
runs-on: ubuntu-24.04
name: Validate
steps:
- name: Checkout afj-controller
- name: Checkout credo-controller
uses: actions/checkout@v4
- name: Setup NodeJS
uses: actions/setup-node@v3
- name: Setup node v20
uses: actions/setup-node@v4
with:
node-version: 18.19.0
node-version: 20
cache: 'yarn'
runs-on: ubuntu-24.04
name: Validate
steps:
- name: Checkout credo-controller
uses: actions/checkout@v4
- name: Setup node v20
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'yarn'
- name: Enable Corepack
run: corepack enable
- name: Install dependencies
run: yarn install --frozen-lockfile
🧰 Tools
🪛 GitHub Check: CodeQL

[warning] 16-38: Workflow does not contain permissions
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {{contents: read}}

🤖 Prompt for AI Agents
.github/workflows/continuous-integration.yml around lines 16 to 26: the workflow
sets up Node but does not enable Corepack nor enforce a frozen lockfile; add a
step immediately after the "Setup node v20" step to run "corepack enable" and
change the subsequent install step to run "yarn install --frozen-lockfile"
(keeping the existing yarn cache configuration) so installs are deterministic
and respect lockfile.


- name: Install dependencies
run: yarn install

- name: Linting
run: yarn lint

- name: Prettier
run: yarn check-format

- name: Compile
run: yarn check-types

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ COPY . .

# Install dependencies
RUN rm -rf node_modules
RUN yarn install --frozen-lockfile
RUN yarn install --frozen-lockfile --network-timeout 600000

RUN yarn global add patch-package

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ const run = async () => {
{
// ... AFJ Config ... //
},
agentDependencies
agentDependencies,
)
await startServer(agent, { port: 3000 })
}
Expand Down
13 changes: 8 additions & 5 deletions bin/afj-rest.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
#!/usr/bin/env node
/* eslint-disable @typescript-eslint/no-var-requires, no-undef */

const { runCliServer } = require('../build/cli')

runCliServer()
import('../build/cli.js')
.then((module) => {
module.runCliServer()
})
.catch((err) => {
console.error('Error starting CLI server:', err)
process.exit(1)
})
98 changes: 98 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
import { fileURLToPath } from 'url';
import { dirname } from 'path';
import eslintPluginImport from 'eslint-plugin-import';
import eslintPluginPrettier from 'eslint-plugin-prettier';
import eslintPluginTypescript from '@typescript-eslint/eslint-plugin';
import parser from '@typescript-eslint/parser';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

export default [
{
ignores: [
'**/tests/*',
'**/build/**',
'**/*.js',
'**/*.d.ts',
],
files: ['**/*.ts'],
languageOptions: {
parser,
parserOptions: {
tsconfigRootDir: __dirname,
project: ['./tsconfig.eslint.json'],
sourceType: 'module',
},
globals: {
console: false, // no-console rule
},
},
plugins: {
'@typescript-eslint': eslintPluginTypescript,
import: eslintPluginImport,
prettier: eslintPluginPrettier,
},
rules: {
'no-constant-condition': 'warn',
'@typescript-eslint/no-explicit-any': 'warn',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-use-before-define': ['error', { functions: false, classes: false, variables: true }],
'@typescript-eslint/explicit-member-accessibility': 'error',
'no-console': 'error',
'@typescript-eslint/ban-ts-comment': 'warn',
'@typescript-eslint/consistent-type-imports': 'error',
'import/no-cycle': 'error',
'import/order': [
'error',
{
groups: ['type', ['builtin', 'external'], 'parent', 'sibling', 'index'],
alphabetize: {
order: 'asc',
},
'newlines-between': 'always',
},
],
'import/no-extraneous-dependencies': [
'error',
{
devDependencies: false,
},
],
'prettier/prettier': 'error',
},
},
{
files: ['jest.config.ts', 'eslint.config.js'],
languageOptions: {
parserOptions: {
sourceType: 'commonjs',
},
globals: {
require: true,
module: true,
__dirname: true,
},
},
},
{
files: ['*.test.ts', '**/__tests__/**', '**/tests/**', 'jest.*.ts', '**/samples/**'],
languageOptions: {
globals: {
describe: true,
test: true,
expect: true,
jest: true,
},
},
rules: {
'import/no-extraneous-dependencies': [
'error',
{
devDependencies: true,
},
],
},
},
];
Loading