Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .claude/mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Volumes/chitty"
"/Users/nb/Desktop/Projects/github.com/CHITTYAPPS/chittyfinance"
],
"description": "File system access for ChittyOS development volume"
"description": "File system access for the ChittyFinance repository"
}
Comment on lines 6 to 12
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

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

This config hard-codes a developer-specific absolute path (/Users/nb/...). That will break for other contributors and may leak local workstation details. Prefer a relative path (repo root) or an environment-variable-driven path, or keep this file untracked/user-local instead of committed.

Copilot uses AI. Check for mistakes.
}
}
31 changes: 31 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: CodeQL

on:
pull_request:
branches: [main]
push:
branches: [main]
schedule:
- cron: "0 6 * * 1"

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
security-events: write
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: javascript-typescript

- name: Autobuild
uses: github/codeql-action/autobuild@v3

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
98 changes: 98 additions & 0 deletions .github/workflows/security-gates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: Security Gates

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

concurrency:
group: security-gates-${{ github.ref }}
cancel-in-progress: true

jobs:
workflow-secret-policy:
name: Workflow Secret Policy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Enforce workflow secret policy
run: ./scripts/security/check-workflow-secrets.sh

working-tree-secret-scan:
name: Working Tree Secret Scan
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Scan for high-risk secret patterns
shell: bash
run: |
set -euo pipefail

if grep -RInE \
--exclude-dir=.git \
--exclude-dir=node_modules \
--exclude-dir=dist \
--exclude-dir=.wrangler \
--exclude='*.png' \
--exclude='*.jpg' \
--exclude='*.jpeg' \
--exclude='*.gif' \
'ghp_[A-Za-z0-9]{20,}|sk_live_[A-Za-z0-9]{20,}|AKIA[0-9A-Z]{16}|BEGIN (RSA|EC|OPENSSH|PGP)? ?PRIVATE KEY' .; then
echo "Secret-like pattern detected in working tree."
exit 1
fi

echo "Working tree secret scan passed."

dependency-audit:
name: Dependency Audit (High+)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'pnpm'

- name: Resolve package root
id: pkg
run: |
set -euo pipefail
if [ -f package.json ]; then
echo "dir=." >> "$GITHUB_OUTPUT"
exit 0
fi
if [ -f development/chittyschema/package.json ]; then
echo "dir=development/chittyschema" >> "$GITHUB_OUTPUT"
exit 0
fi
echo "dir=" >> "$GITHUB_OUTPUT"
echo "No Node package root detected; skipping dependency audit."

- name: Install dependencies
if: steps.pkg.outputs.dir != ''
run: |
set -euo pipefail
cd "${{ steps.pkg.outputs.dir }}"
pnpm install --frozen-lockfile

- name: Enforce audit high threshold
if: steps.pkg.outputs.dir != ''
run: |
set -euo pipefail
cd "${{ steps.pkg.outputs.dir }}"
pnpm audit --prod --audit-level high
22 changes: 20 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ dist
.DS_Store
server/public
vite.config.ts.*
*.tar.gz

# Environment files with secrets
.env
Expand All @@ -22,4 +21,23 @@ vite.config.ts.*
*.db
*.db-shm
*.db-wal
migrations/
migrations/

# Chat agent (separate project, has its own node_modules)
chat-agent/

# Lockfile (using pnpm)
package-lock.json

# Large binary/archive files
*.zip
*.tar.gz

# Replit artifacts
.replit
replit.md
attached_assets/
generated-icon.png

# One-off patches and scripts
*.patch
43 changes: 0 additions & 43 deletions .replit

This file was deleted.

42 changes: 0 additions & 42 deletions AGENTS.md

This file was deleted.

Loading
Loading