-
Notifications
You must be signed in to change notification settings - Fork 0
fix(money-machine): harden desktop security #61
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
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,24 @@ | ||
| changelog: | ||
| exclude: | ||
| labels: | ||
| - ignore-for-release | ||
| authors: | ||
| - dependabot | ||
| categories: | ||
| - title: Security | ||
| labels: | ||
| - security | ||
| - title: Features | ||
| labels: | ||
| - enhancement | ||
| - feature | ||
| - title: Fixes | ||
| labels: | ||
| - bug | ||
| - fix | ||
| - title: Dependencies | ||
| labels: | ||
| - dependencies | ||
| - title: Other Changes | ||
| labels: | ||
| - "*" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| # Changelog | ||
|
|
||
| ## [0.1.1-alpha] - 2026-05-14 | ||
|
|
||
| ### Security | ||
| - Stop reading exchange and Gemini API keys from `config.json`; secrets are loaded from environment variables only. | ||
| - Enforce bounded IPC header/body reads with oversized request rejection. | ||
| - Add whitelist and range validation for runtime config updates. | ||
|
|
||
| ### Fixed | ||
| - Consolidate `TradingSignal` on one canonical dataclass. | ||
| - Keep AI signal sizing data in metadata so pipeline contracts stay compatible. | ||
|
|
||
| ### Changed | ||
| - Refresh Money Machine desktop logo/icons and Shadow Mode dashboard UI. | ||
| - Add Vercel and Cloudflare Pages security headers for the dashboard build. | ||
|
|
||
| ## [0.1.0-alpha] - 2026-05-14 | ||
|
|
||
| ### Added | ||
| - Initial alpha release tag for AlphaAxiom Money Machine. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -10,6 +10,7 @@ dist/ | |
|
|
||
| # Tauri | ||
| src-tauri/target/ | ||
| src-tauri/gen/ | ||
|
|
||
| # System Files | ||
| .DS_Store | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| /// <reference types="next" /> | ||
| /// <reference types="next/image-types/global" /> | ||
| import "./.next/types/routes.d.ts"; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Verify whether next-env.d.ts imports generated artifacts directly.
rg -n '^\s*import\s+["'\'']\./\.next/types/routes\.d\.ts["'\''];?\s*$' money-machine/next-env.d.ts
# Check if generated file exists in repo checkout (clean CI often won't have it).
test -f money-machine/.next/types/routes.d.ts; echo "routes.d.ts exists? exit=$?"
# Inspect tsconfig include entries that already cover generated types.
rg -n '"\.next/types/\*\*/\*\.ts"|"\.next/dev/types/\*\*/\*\.ts"' money-machine/tsconfig.jsonRepository: Moeabdelaziz007/AlphaAxiom Length of output: 198 Remove direct import of generated The import of 🤖 Prompt for AI Agents |
||
|
|
||
| // NOTE: This file should not be edited | ||
| // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: Moeabdelaziz007/AlphaAxiom
Length of output: 169
🏁 Script executed:
Repository: Moeabdelaziz007/AlphaAxiom
Length of output: 114
🏁 Script executed:
Repository: Moeabdelaziz007/AlphaAxiom
Length of output: 537
🏁 Script executed:
Repository: Moeabdelaziz007/AlphaAxiom
Length of output: 52
🏁 Script executed:
Repository: Moeabdelaziz007/AlphaAxiom
Length of output: 445
🌐 Web query:
GitHub Actions security best practices version pinning commit SHA💡 Result:
GitHub Actions security best practices strongly recommend pinning actions to full-length commit SHAs to prevent supply chain attacks where malicious code could be injected via mutable tags or compromised repositories [1][2][3]. This is the only way to use actions as immutable releases, as tags can be rewritten or deleted even by trusted maintainers [1][4]. Official GitHub documentation states: "Pinning an action to a full-length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps mitigate the risk of a bad actor adding a backdoor to the action's repository, as they would need to generate a SHA-1 collision for a valid Git object payload" [1]. Example workflow change: uses: actions/checkout@v4 becomes: uses: actions/checkout@692973e # v4.1.0 [5][6] To find the SHA for a tag: - git ls-remote --tags https://github.com/owner/repo.git refs/tags/v4 [7] - Visit the repo, switch to the tag, copy the full SHA [6] - Check workflow run logs under "Setup Job" [6] Add a comment with the version for readability, e.g., # v4.1.0 [3][7]. Use Dependabot to automate updates: it creates PRs updating the SHA and version comment when new releases occur [3][8][9]. Tools like pin-github-action or ensure-sha-pinned-actions can help enforce/automate pinning [10][11][12]. Organizations can enforce SHA pinning via policies at repo/org/enterprise levels; workflows using tags will fail [2][3]. The policy checks the full dependency tree, including sub-actions [3]. Upcoming 2026 features include workflow dependencies lockfiles for transitive pinning and execution policies [13]. Additional practices: - Verify SHA is from the official repo, not a fork [1] - Prefer verified creators on Marketplace [1] - Use read-only GITHUB_TOKEN by default, escalate per-job [14] - Avoid pull_request_target for untrusted code [15] - Implement cooldowns (7-14 days) before updating [16]
Citations:
Pin all GitHub Actions to immutable commit SHAs.
All eight actions in this workflow use floating version tags (v4, v5, v0, v2, stable), which can change upstream and weaken CI/CD supply-chain guarantees. GitHub's official security guidance recommends pinning to full 40-character commit SHAs as the only way to ensure immutability. Apply this across the entire file:
actions/checkout@v4dtolnay/rust-action@stableactions/setup-node@v4actions/setup-python@v5tauri-apps/tauri-action@v0actions/upload-artifact@v4actions/download-artifact@v4softprops/action-gh-release@v2Include a comment with the version for readability (e.g.,
# v2.0.0). Use Dependabot to automate updates.🤖 Prompt for AI Agents