Skip to content

Commit 3148ad5

Browse files
gui-wfclaude
andcommitted
Reorganize documentation and prepare v1.0.0-2 release
- Reorganized README.md structure: Quick Start → MCP Integration → Available Tools → Features - Moved developer documentation to docs/ folder: - docs/DEVELOPMENT.md - Development workflow and contributing guidelines - docs/API-UPDATES.md - API synchronization procedures - docs/TROUBLESHOOTING.md - Common issues and solutions - Added Claude Code .mcp.json configuration support - Added Nix flake direct execution from GitHub - Fixed flake.nix executable wrapper for ES modules - Added npm publishing workflow and configuration - Enhanced test coverage for v1.0.0-2 release 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 222ea28 commit 3148ad5

File tree

12 files changed

+775
-110
lines changed

12 files changed

+775
-110
lines changed

.github/workflows/npm-publish.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Publish to npm
2+
3+
on:
4+
release:
5+
types: [published]
6+
workflow_dispatch:
7+
inputs:
8+
version:
9+
description: 'Version to publish (patch/minor/major)'
10+
required: true
11+
default: 'patch'
12+
13+
jobs:
14+
publish:
15+
runs-on: ubuntu-latest
16+
permissions:
17+
contents: write
18+
19+
steps:
20+
- uses: actions/checkout@v4
21+
22+
- name: Install Nix
23+
uses: DeterminateSystems/nix-installer-action@main
24+
25+
- name: Setup Nix Cache
26+
uses: DeterminateSystems/magic-nix-cache-action@main
27+
28+
- name: Enter Nix Development Shell and Install Dependencies
29+
run: nix develop --command npm ci
30+
31+
- name: Build Package
32+
run: nix develop --command npm run build
33+
34+
- name: Test Package
35+
run: nix develop --command npm run test:mock
36+
37+
- name: Version Bump (if manual trigger)
38+
if: github.event_name == 'workflow_dispatch'
39+
run: |
40+
nix develop --command npm version ${{ github.event.inputs.version }} --no-git-tag-version
41+
git config user.name "GitHub Actions"
42+
git config user.email "[email protected]"
43+
git add package.json package-lock.json
44+
git commit -m "chore: bump version to $(node -p "require('./package.json').version")"
45+
git push
46+
47+
- name: Publish to npm
48+
env:
49+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
50+
run: nix run .#npm-publish
51+
52+
- name: Create GitHub Tag (if manual trigger)
53+
if: github.event_name == 'workflow_dispatch'
54+
run: |
55+
VERSION=$(node -p "require('./package.json').version")
56+
git tag "v$VERSION"
57+
git push origin "v$VERSION"

.npmignore

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Source files (only distribute built files)
2+
src/
3+
scripts/
4+
.claude/
5+
.github/
6+
docs/
7+
nix/
8+
9+
# Development files
10+
*.test.ts
11+
*.spec.ts
12+
vitest.config.ts
13+
tsconfig.json
14+
.eslintrc*
15+
.prettierrc*
16+
17+
# Nix files
18+
flake.nix
19+
flake.lock
20+
*.nix
21+
22+
# Git files
23+
.git/
24+
.gitignore
25+
26+
# Editor files
27+
.vscode/
28+
.idea/
29+
*.swp
30+
*.swo
31+
32+
# Environment files
33+
.env*
34+
.npmrc
35+
36+
# MCP config
37+
.mcp.json
38+
39+
# Logs
40+
*.log
41+
npm-debug.log*
42+
43+
# Dependencies
44+
node_modules/
45+
46+
# Build artifacts not needed
47+
*.map
48+
49+
# Documentation that's not needed in package
50+
LICENSE_COMPARISON.md

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
//registry.npmjs.org/:_authToken=${NPM_TOKEN}

CLAUDE.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ MCP (Model Context Protocol) server for PurelyMail email service. Exposes Purely
2424

2525
See `docs/KNOWN_ISSUES.md` for detailed documentation of current limitations and workarounds.
2626

27+
## Release Management
28+
29+
See `docs/versioning-guidelines.md` for semantic versioning practices and release procedures.
30+
2731
## Commands
2832
```bash
2933
# Development
@@ -185,3 +189,27 @@ npm list --depth=0 --json | jq '.dependencies | to_entries[] | {name: .key, vers
185189
-**Unknown**: Undefined or unrecognized licenses
186190

187191
**Always use `/check-license` first** - it contains the complete decision tree and will guide you through any scenario.
192+
193+
## Security
194+
195+
### API Key Management
196+
- Never commit API keys to version control
197+
- Use environment variables for sensitive configuration (`PURELYMAIL_API_KEY`)
198+
- Store API keys securely in CI/CD systems (GitHub secrets, etc.)
199+
200+
### Development Safety
201+
- Mock mode is safe for development and testing
202+
- Use `MOCK_MODE=true` when possible to avoid real API calls
203+
- Test with MCP Inspector before connecting to production API
204+
205+
### Code Security
206+
- Validate all inputs against swagger schemas
207+
- Sanitize error messages (no sensitive data)
208+
- Use type-safe generated client methods
209+
- Never expose raw API responses without validation
210+
- Review all changes to generated client code
211+
212+
### MCP Server Security
213+
- The server uses stdio transport - only local connections
214+
- Environment variables are not logged or exposed
215+
- Error messages are filtered to prevent data leakage

0 commit comments

Comments
 (0)