-
Notifications
You must be signed in to change notification settings - Fork 1
feat: add Shiora, ZeroID, NoblePay dApps and protocol-wide updates #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
6cf7654
573eed6
93da0b8
0b4576a
0754234
b3402f7
e93a0f5
ccbf06e
b46bbcd
99afcb3
1d2a16c
029d155
ed0c302
2a37b71
d710bf3
e09eb1d
6a6421c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| blank_issues_enabled: false | ||
| contact_links: | ||
| - name: Security reports | ||
| url: mailto:security@aethelred.io | ||
| about: Report vulnerabilities privately. Do not use public issues. | ||
| - name: Documentation | ||
| url: https://docs.aethelred.io | ||
| about: Start with the docs, guides, and runbooks. | ||
| - name: Community support | ||
| url: https://discord.gg/aethelred | ||
| about: Ask questions and get routed to the right maintainer or repo. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| # GitHub Configuration | ||
|
|
||
| This directory contains the repository-wide GitHub configuration for Aethelred. | ||
|
|
||
| ## What Lives Here | ||
|
|
||
| - `workflows/`: CI, security, release, deployment, SDK, docs, and launch gates | ||
| - `ISSUE_TEMPLATE/`: issue intake templates for bugs and feature requests | ||
| - `PULL_REQUEST_TEMPLATE.md`: pull request checklist and contributor expectations | ||
| - `branch-protection/`: required check definitions used to keep launch branches honest | ||
| - `dependabot.yml`: dependency update policy | ||
|
|
||
| ## Operating Rules | ||
|
|
||
| - Treat workflow changes as production-affecting changes. | ||
| - Keep required gates aligned with `docs/operations/GATE_INVENTORY.md`. | ||
| - Do not merge workflow or branch-protection changes without corresponding evidence. | ||
| - Release and launch changes must follow `docs/operations/FREEZE_POLICY.md`. | ||
|
|
||
| ## Maintainers | ||
|
|
||
| Primary owners for this directory are Release Engineering, Security, and Core Protocol. | ||
|
|
||
| ## Related Docs | ||
|
|
||
| - `docs/operations/GATE_INVENTORY.md` | ||
| - `docs/operations/FREEZE_POLICY.md` | ||
| - `docs/VALIDATOR_RUNBOOK.md` |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,40 +1,44 @@ | ||
| { | ||
| "default": [ | ||
| "Core Required Gate", | ||
| "Contracts Required Gate", | ||
| "Rust Required Gate", | ||
| "Security Required Gate", | ||
| "Sandbox Required Gate", | ||
| "Docker Required Gate" | ||
| "Docker Required Gate", | ||
| "Load Test Required Gate", | ||
| "Fuzzing Required Gate", | ||
| "dApps Required Gate" | ||
| ], | ||
| "main": [ | ||
| "Audit Signoff Required Gate", | ||
| "Core Required Gate", | ||
| "Contracts Required Gate", | ||
| "Rust Required Gate", | ||
| "Security Required Gate", | ||
| "Sandbox Required Gate", | ||
| "Load Test Required Gate", | ||
| "Docker Required Gate", | ||
| "E2E Required Gate" | ||
| "Load Test Required Gate", | ||
| "Fuzzing Required Gate", | ||
| "E2E Required Gate", | ||
| "dApps Required Gate" | ||
| ], | ||
| "develop": [ | ||
| "Core Required Gate", | ||
| "Contracts Required Gate", | ||
| "Rust Required Gate", | ||
| "Security Required Gate", | ||
| "Sandbox Required Gate", | ||
| "Docker Required Gate" | ||
| "Docker Required Gate", | ||
| "Load Test Required Gate", | ||
| "Fuzzing Required Gate", | ||
| "dApps Required Gate" | ||
| ], | ||
| "release/*": [ | ||
| "Audit Signoff Required Gate", | ||
| "Core Required Gate", | ||
| "Contracts Required Gate", | ||
| "Rust Required Gate", | ||
| "Security Required Gate", | ||
| "Sandbox Required Gate", | ||
| "Load Test Required Gate", | ||
| "Docker Required Gate", | ||
| "E2E Required Gate" | ||
| "Load Test Required Gate", | ||
| "Fuzzing Required Gate", | ||
| "E2E Required Gate", | ||
| "dApps Required Gate" | ||
| ] | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,209 @@ | ||||||||||||||||||||||||||||||||
| name: dApps CI | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| on: | ||||||||||||||||||||||||||||||||
| push: | ||||||||||||||||||||||||||||||||
| branches: [main, develop, release/**] | ||||||||||||||||||||||||||||||||
| paths: | ||||||||||||||||||||||||||||||||
| - 'dApps/**' | ||||||||||||||||||||||||||||||||
| - '.github/workflows/dapps-ci.yml' | ||||||||||||||||||||||||||||||||
| pull_request: | ||||||||||||||||||||||||||||||||
| branches: [main, develop, release/**] | ||||||||||||||||||||||||||||||||
| paths: | ||||||||||||||||||||||||||||||||
| - 'dApps/**' | ||||||||||||||||||||||||||||||||
| - '.github/workflows/dapps-ci.yml' | ||||||||||||||||||||||||||||||||
| workflow_dispatch: | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| jobs: | ||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| # ZeroID Backend | ||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| zeroid-backend: | ||||||||||||||||||||||||||||||||
| name: ZeroID Backend | ||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||
| defaults: | ||||||||||||||||||||||||||||||||
| run: | ||||||||||||||||||||||||||||||||
| working-directory: dApps/zeroid/backend | ||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||
| - uses: actions/setup-node@v4 | ||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||
| node-version: "20" | ||||||||||||||||||||||||||||||||
| cache: "npm" | ||||||||||||||||||||||||||||||||
| cache-dependency-path: dApps/zeroid/backend/package-lock.json | ||||||||||||||||||||||||||||||||
| - name: Install dependencies | ||||||||||||||||||||||||||||||||
| run: npm ci --no-fund | ||||||||||||||||||||||||||||||||
| - name: Security audit | ||||||||||||||||||||||||||||||||
| run: npm audit --audit-level=high | ||||||||||||||||||||||||||||||||
| - name: Lint | ||||||||||||||||||||||||||||||||
| run: npm run lint | ||||||||||||||||||||||||||||||||
| - name: Type-check | ||||||||||||||||||||||||||||||||
| run: npx tsc --noEmit | ||||||||||||||||||||||||||||||||
| - name: Run tests | ||||||||||||||||||||||||||||||||
| run: npm test -- --forceExit --ci | ||||||||||||||||||||||||||||||||
| - name: Build | ||||||||||||||||||||||||||||||||
| run: npm run build | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| # ZeroID Frontend | ||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| zeroid-frontend: | ||||||||||||||||||||||||||||||||
| name: ZeroID Frontend | ||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||
| defaults: | ||||||||||||||||||||||||||||||||
| run: | ||||||||||||||||||||||||||||||||
| working-directory: dApps/zeroid | ||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||
| - uses: actions/setup-node@v4 | ||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||
| node-version: "20" | ||||||||||||||||||||||||||||||||
| cache: "npm" | ||||||||||||||||||||||||||||||||
| cache-dependency-path: dApps/zeroid/package-lock.json | ||||||||||||||||||||||||||||||||
| - name: Install dependencies | ||||||||||||||||||||||||||||||||
| run: npm ci --no-fund | ||||||||||||||||||||||||||||||||
| - name: Lint | ||||||||||||||||||||||||||||||||
| run: npm run lint | ||||||||||||||||||||||||||||||||
| - name: Type-check | ||||||||||||||||||||||||||||||||
| run: npm run type-check | ||||||||||||||||||||||||||||||||
| - name: Format check | ||||||||||||||||||||||||||||||||
| run: npm run format:check | ||||||||||||||||||||||||||||||||
| - name: Run tests with coverage | ||||||||||||||||||||||||||||||||
| run: npm run test:ci | ||||||||||||||||||||||||||||||||
| - name: Build | ||||||||||||||||||||||||||||||||
| run: npm run build | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| # Cruzible | ||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| cruzible: | ||||||||||||||||||||||||||||||||
|
Comment on lines
+50
to
+78
Check warningCode 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}
Copilot AutofixAI 2 months ago In general, the fix is to add an explicit The best fix here is to add a top-level permissions:
contents: readbetween the
Suggested changeset
1
.github/workflows/dapps-ci.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Unable to commit as this autofix suggestion is now outdated
Refresh and try again.
|
||||||||||||||||||||||||||||||||
| name: Cruzible | ||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||
| defaults: | ||||||||||||||||||||||||||||||||
| run: | ||||||||||||||||||||||||||||||||
| working-directory: dApps/cruzible | ||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||
| - uses: actions/setup-node@v4 | ||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||
| node-version: "20" | ||||||||||||||||||||||||||||||||
| cache: "npm" | ||||||||||||||||||||||||||||||||
| cache-dependency-path: dApps/cruzible/package-lock.json | ||||||||||||||||||||||||||||||||
| - name: Install dependencies | ||||||||||||||||||||||||||||||||
| run: npm ci --no-fund | ||||||||||||||||||||||||||||||||
| - name: Validate (type-check + lint + format + test) | ||||||||||||||||||||||||||||||||
| run: npm run validate | ||||||||||||||||||||||||||||||||
| - name: Build | ||||||||||||||||||||||||||||||||
| run: npm run build | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| # NoblePay | ||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| noblepay: | ||||||||||||||||||||||||||||||||
|
Comment on lines
+79
to
+101
Check warningCode 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}
Copilot AutofixAI 2 months ago In general, the fix is to add an explicit The best way to fix this without changing functionality is to add a single Concretely:
This explicitly restricts the
Suggested changeset
1
.github/workflows/dapps-ci.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Unable to commit as this autofix suggestion is now outdated
Refresh and try again.
|
||||||||||||||||||||||||||||||||
| name: NoblePay | ||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||
| defaults: | ||||||||||||||||||||||||||||||||
| run: | ||||||||||||||||||||||||||||||||
| working-directory: dApps/noblepay | ||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||
| - uses: actions/setup-node@v4 | ||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||
| node-version: "20" | ||||||||||||||||||||||||||||||||
| cache: "npm" | ||||||||||||||||||||||||||||||||
| cache-dependency-path: dApps/noblepay/package-lock.json | ||||||||||||||||||||||||||||||||
| - name: Install dependencies | ||||||||||||||||||||||||||||||||
| run: npm ci --no-fund | ||||||||||||||||||||||||||||||||
| - name: Validate all components | ||||||||||||||||||||||||||||||||
| run: npm run validate | ||||||||||||||||||||||||||||||||
| - name: Build | ||||||||||||||||||||||||||||||||
| run: npm run build | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| # Shiora | ||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| shiora: | ||||||||||||||||||||||||||||||||
| name: Shiora | ||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||
| defaults: | ||||||||||||||||||||||||||||||||
| run: | ||||||||||||||||||||||||||||||||
| working-directory: dApps/shiora | ||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||
| - uses: actions/setup-node@v4 | ||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||
| node-version: "20" | ||||||||||||||||||||||||||||||||
| cache: "npm" | ||||||||||||||||||||||||||||||||
| cache-dependency-path: dApps/shiora/package-lock.json | ||||||||||||||||||||||||||||||||
| - name: Install dependencies | ||||||||||||||||||||||||||||||||
| run: npm ci --no-fund | ||||||||||||||||||||||||||||||||
| - name: Lint | ||||||||||||||||||||||||||||||||
| run: npm run lint | ||||||||||||||||||||||||||||||||
| - name: Type-check | ||||||||||||||||||||||||||||||||
| run: npm run type-check | ||||||||||||||||||||||||||||||||
| - name: Format check | ||||||||||||||||||||||||||||||||
| run: npm run format:check | ||||||||||||||||||||||||||||||||
| - name: Run tests with coverage | ||||||||||||||||||||||||||||||||
| run: npm run test -- --coverage --ci | ||||||||||||||||||||||||||||||||
| - name: Build | ||||||||||||||||||||||||||||||||
| run: npm run build | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| # TerraQura | ||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| terraqura: | ||||||||||||||||||||||||||||||||
| name: TerraQura | ||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||
| defaults: | ||||||||||||||||||||||||||||||||
| run: | ||||||||||||||||||||||||||||||||
| working-directory: dApps/terraqura | ||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||
| - uses: actions/setup-node@v4 | ||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||
| node-version: "20" | ||||||||||||||||||||||||||||||||
| - name: Install pnpm | ||||||||||||||||||||||||||||||||
| run: corepack enable && corepack prepare pnpm@9 --activate | ||||||||||||||||||||||||||||||||
| - name: Install dependencies | ||||||||||||||||||||||||||||||||
| run: pnpm install --frozen-lockfile | ||||||||||||||||||||||||||||||||
| - name: Lint | ||||||||||||||||||||||||||||||||
| run: pnpm lint | ||||||||||||||||||||||||||||||||
| - name: Type-check | ||||||||||||||||||||||||||||||||
| run: pnpm typecheck | ||||||||||||||||||||||||||||||||
| - name: Run tests | ||||||||||||||||||||||||||||||||
| run: pnpm test | ||||||||||||||||||||||||||||||||
| - name: Build | ||||||||||||||||||||||||||||||||
| run: pnpm build | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| # Required gate — all dApps must pass before merge | ||||||||||||||||||||||||||||||||
| # --------------------------------------------------------------------------- | ||||||||||||||||||||||||||||||||
| dapps-required-gate: | ||||||||||||||||||||||||||||||||
|
Comment on lines
+102
to
+180
Check warningCode 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}
Copilot AutofixAI 2 months ago In general, fix this by adding an explicit Specifically, edit permissions:
contents: readThis sets the default
Suggested changeset
1
.github/workflows/dapps-ci.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Unable to commit as this autofix suggestion is now outdated
Refresh and try again.
|
||||||||||||||||||||||||||||||||
| name: dApps Required Gate | ||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||
| needs: | ||||||||||||||||||||||||||||||||
| - zeroid-backend | ||||||||||||||||||||||||||||||||
| - zeroid-frontend | ||||||||||||||||||||||||||||||||
| - cruzible | ||||||||||||||||||||||||||||||||
| - noblepay | ||||||||||||||||||||||||||||||||
| - shiora | ||||||||||||||||||||||||||||||||
| - terraqura | ||||||||||||||||||||||||||||||||
| if: always() | ||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||
| - name: Check all jobs passed | ||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||
| if [[ "${{ needs.zeroid-backend.result }}" != "success" ]] || | ||||||||||||||||||||||||||||||||
| [[ "${{ needs.zeroid-frontend.result }}" != "success" ]] || | ||||||||||||||||||||||||||||||||
| [[ "${{ needs.cruzible.result }}" != "success" ]] || | ||||||||||||||||||||||||||||||||
| [[ "${{ needs.noblepay.result }}" != "success" ]] || | ||||||||||||||||||||||||||||||||
| [[ "${{ needs.shiora.result }}" != "success" ]] || | ||||||||||||||||||||||||||||||||
| [[ "${{ needs.terraqura.result }}" != "success" ]]; then | ||||||||||||||||||||||||||||||||
| echo "One or more dApps CI jobs failed:" | ||||||||||||||||||||||||||||||||
| echo " zeroid-backend: ${{ needs.zeroid-backend.result }}" | ||||||||||||||||||||||||||||||||
| echo " zeroid-frontend: ${{ needs.zeroid-frontend.result }}" | ||||||||||||||||||||||||||||||||
| echo " cruzible: ${{ needs.cruzible.result }}" | ||||||||||||||||||||||||||||||||
| echo " noblepay: ${{ needs.noblepay.result }}" | ||||||||||||||||||||||||||||||||
| echo " shiora: ${{ needs.shiora.result }}" | ||||||||||||||||||||||||||||||||
| echo " terraqura: ${{ needs.terraqura.result }}" | ||||||||||||||||||||||||||||||||
| exit 1 | ||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||
| echo "All dApps CI gates passed." | ||||||||||||||||||||||||||||||||
|
Comment on lines
+181
to
+209
Check warningCode 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: {}
Copilot AutofixAI 2 months ago In general, the fix is to add an explicit The single best fix with no functional change is to add a root-level Concretely: edit permissions:
contents: readbetween line 1 (
Suggested changeset
1
.github/workflows/dapps-ci.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Unable to commit as this autofix suggestion is now outdated
Refresh and try again.
|
||||||||||||||||||||||||||||||||
Check warning
Code scanning / CodeQL
Workflow does not contain permissions Medium
Copilot Autofix
AI 2 months ago
In general, fix this by explicitly declaring
permissions:for the workflow (or each job) so that theGITHUB_TOKENhas only the scopes actually required. For this CI workflow, all jobs just check out code and run Node commands; they do not create releases, modify issues, or push code, socontents: readis sufficient.The simplest, non‑behavior‑changing fix is to add a single root‑level
permissions:block that applies to all jobs. This should be placed near the top of.github/workflows/dapps-ci.yml, after thename:andon:definitions, and beforejobs:. Set it to:No additional methods, imports, or definitions are needed, and no job steps need to change. This explicitly documents and enforces read‑only repository access for all jobs using
GITHUB_TOKEN.